How To Install R on Ubuntu 22.04 and set-up Renv

R環境構築ノート 1/N

公開日: 2023-07-28
更新日: 2024-02-21

  Table of Contents

はじめに

Ubuntu 22.04 LTSを対象に

  • Rのインストール
  • Renvのインストール
  • RStudioのインストール

をまとめた記事となります. CPU infoは以下となります

1
2
3
4
5
6
7
% sudo lshw -class processor 
[sudo] password for hoshinokirby: 
  *-cpu                     
       description: CPU
       product: AMD Ryzen 9 7950X 16-Core Processor
       vendor: Advanced Micro Devices [AMD]
       ...

Install R into Ubuntu 22.04 LTS

Prerequisites

  • user account with sudo privileges
  • Terminalへのアクセス

UbuntuへのRのインストールの方法として,

  1. Ubuntu RepositoryからのInstall
  2. CRAN repositoryからのInstall

の2つがあります. 前者は, apt commandのみで完結しますが, Ubuntu Repositoryが常に最新版のRを 反映しているとは限らないので, 今回は少しめんどくさいですが後者の「CRAN repositoryからのInstall」をベースに紹介します.

Rのinstall

Prerequisites

software-properties-common manage the repositories that you install software from (common)
dirmngr GNU privacy guard - network certificate management service
1
% sudo apt install software-properties-common dirmngr -y


手順

  1. CRAN repositoryの署名キーの取得
  2. Ubuntu systemへのCRAN repositoryの登録
  3. R packageのインストール

(1) CRAN repositoryの署名キーの取得

1
% wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
  • /etc/apt/trusted.gpg.d/はパッケージの署名に使っている公開鍵を格納するディレクトリ
  • 登録された署名キーはapt-key listコマンドで確認することが可能

公開鍵fingerprintを以下のコマンドで確認し, E298A3A825C0D65DFD57CBB651716619E084DAB9と一致することを確認します

1
2
3
4
5
% gpg --show-keys /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
pub   rsa2048 2010-10-19 [SCA] [expires: 2027-09-30]
      E298A3A825C0D65DFD57CBB651716619E084DAB9
uid                      Michael Rutter <marutter@gmail.com>
sub   rsa2048 2010-10-19 [E] [expires: 2027-09-30]

(2) Ubuntu systemにCRAN repositoryを登録

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
% sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
```--2024-02-21 18:29:57--  https://download1.rstudio.org/electron/jammy/amd64/rstudio-2023.12.1-402-amd64.deb
Resolving download1.rstudio.org (download1.rstudio.org)... 13.35.49.53, 13.35.49.35, 13.35.49.76, ...
Connecting to download1.rstudio.org (download1.rstudio.org)|13.35.49.53|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 149955068 (143M) [application/octet-stream]
Saving to: ‘rstudio-2023.12.1-402-amd64.deb’

rstudio-2023.12.1-4 100%[===================>] 143.01M  6.98MB/s    in 21s     

2024-02-21 18:30:18 (6.81 MB/s) - ‘rstudio-2023.12.1-402-amd64.deb’ saved [149955068/149955068]


登録することで, `r-base`, `r-base-dev`のpackage priorityがUbuntu softwareからCRAN packageへ更新されます.
その確認は`apt-cache policy`コマンドで確認できます

```zsh
% apt-cache policy r-base    
r-base:
  Installed: 4.3.1-4.2204.0
  Candidate: 4.3.1-4.2204.0
  Version table:--2024-02-21 18:29:57--  https://download1.rstudio.org/electron/jammy/amd64/rstudio-2023.12.1-402-amd64.deb
Resolving download1.rstudio.org (download1.rstudio.org)... 13.35.49.53, 13.35.49.35, 13.35.49.76, ...
Connecting to download1.rstudio.org (download1.rstudio.org)|13.35.49.53|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 149955068 (143M) [application/octet-stream]
Saving to: ‘rstudio-2023.12.1-402-amd64.deb’

rstudio-2023.12.1-4 100%[===================>] 143.01M  6.98MB/s    in 21s     

2024-02-21 18:30:18 (6.81 MB/s) - ‘rstudio-2023.12.1-402-amd64.deb’ saved [149955068/149955068]

 *** 4.3.1-4.2204.0 500
        500 https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ Packages
        100 /var/lib/dpkg/status
     4.3.1-3.2204.0 500
        500 https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ Packages
     ....()
     4.1.2-1ubuntu2 500
        500 http://jp.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
        500 http://jp.archive.ubuntu.com/ubuntu jammy/universe i386 Packages

> (3) R packageのインストール

1
% sudo apt install r-base r-base-dev -y

install後, R commandの動作を確認します

1
2
3
4
5
## R consoleの立ち上げ
% R

## Rのterminate
> q()

R Quickstart: install packages

Packages in CRAN Repository

CRAN RepositoryからR packageをインストールする場合は以下が基本コマンドです

1
install.packages('readr')

複数のpackageを同時にインストールする場合は

1
install.packages(c('readr', 'ggplot2', 'tidyr'))

Packages in GitHub Repository

  • devtools library経由でインストールするのが基本です
  • devtools::install_github(username/repo_name[/subdir])が基本構文
1
2
3
4
5
## devtoolsのインストール
install.packages('devtools')

## GitHub Repositoryからのインストール
devtools::install_github('rstudio/shiny')

Localのzip fileからインストールする場合

1
install.packages('~/Downloads/abc_2.1.zip', repos=NULL, type='source')

renvの導入

renvは現時点での分析環境(パッケージのバージョン)を保存&再現してくれるツールです. renvを用いて分析環境を管理すると, プロジェクトごとに

  • renv.lock file: R packageのバージョンおよび依存関係の情報を記載
  • renv directory: R packageの格納場所(prokect libaryに該当)

が生成され, 異なる分析環境が現在の分析環境に与える影響を低減することが出来ます. あくまでR package管理のための仕組みであって, pyenvのようなR自体のversion管理ツールではないことに留意してください.

Renvの基本的考え方

sequenceDiagram
    participant A AS system library
    participant B AS project library
    participant C AS lockfile
    participant D AS renv cache
    
    A->>B: renv::init()
    D->>B: renv::install() or renv::update()
    B->>C: renv::snapshot()
    C->>B: renv::restore()

あくまでrenv cacheというグローバル環境にパッケージを保有しており, renv directoryの中身はそれらの R packageを参照しているのみなので, projectが乱立してもそこまでpackageスペースは取りません.

Renvのインストール

  1. R packageとしてinstallする場合
  2. apt経由でインストールする場合

の2つのパターンがあります.

(1) R packageとしてinstallする場合

1
install.packages("renv")

(2) apt経由でインストールする場合

  • software-properties-common: manage the repositories that you install software from (common)
  • dirmngr: GNU privacy guard - network certificate management service

がインストールに必要ですが, Rのインストール時点で入っているはずです. なかった場合はapt経由でインストールしてください.

次に, repositoryを登録し, 更新します.

1
2
% sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+
% sudo apt update

最後にapt installを実行します.

1
% sudo apt install r-cran-renv r-cran-devtools

Renv basic syntax

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# disable automatic snapshots
auto.snapshot <- getOption("renv.config.auto.snapshot")
options(renv.config.auto.snapshot = FALSE)

# initialize a new project (with an empty R library)
renv::init(bare = TRUE)

# install digest 0.6.19
renv::install("digest@0.6.19")

# install 'digest' from GitHub (latest dev. version)
renv::install("eddelbuettel/digest")

# save library state to lockfile
renv::snapshot()

# remove digest from library
renv::remove("digest")

# check library status
renv::status()

# restore lockfile, thereby reinstalling digest 0.6.19
renv::restore()

# restore automatic snapshots
options(renv.config.auto.snapshot = auto.snapshot)

RStudioのインストール

手順

  1. 公式サイトよりdeb packageをダウンロード
  2. dpkgコマンドでインストール(aptだと警告が出る場合がある)

実行コマンドは以下となります:

1
2
3
4
5
6
7
8
9
10
11
12
13
## deb packageのdownload
% cd ./workingdirectory
% wget https://download1.rstudio.org/electron/jammy/amd64/rstudio-2023.12.1-402-amd64.deb
--2023-12-21 18:29:57--  https://download1.rstudio.org/electron/jammy/amd64/rstudio-2023.12.1-402-amd64.deb
Resolving download1.rstudio.org (download1.rstudio.org)... 13.35.49.53, 13.35.49.35, 13.35.49.76, ...
Connecting to download1.rstudio.org (download1.rstudio.org)|13.35.49.53|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 149955068 (143M) [application/octet-stream]
Saving to: ‘rstudio-2023.12.1-402-amd64.deb’

rstudio-2023.12.1-4 100%[===================>] 143.01M  6.98MB/s    in 21s     

2023-12-21 18:30:18 (6.81 MB/s) - ‘rstudio-2023.12.1-402-amd64.deb’ saved [149955068/149955068]

次にインストールを実行します

1
2
3
## install
% sudo dpkg -i ./rstudio-2023.12.1-402-amd64.deb
## uninstallの場合はsudo dpkg -r rstudio

Existing GPU process due to erros during initializationへの対処

以下のような警告メッセージが発生する場合が時折あります.

1
2
3
4
5
6
% rstudio
[3058:0526/090351.054091:ERROR:gl_factory.cc(128)] Requested GL implementation (gl=none,angle=none) not found in allowed implementations: [(gl=egl-angle,angle=default),(gl=desktop-gl,angle=none),(gl=egl-gles2,angle=none),(gl=egl-angle,angle=swiftshader)].
[3058:0526/090351.100145:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
[3090:0526/090351.600756:ERROR:gl_factory.cc(128)] Requested GL implementation (gl=none,angle=none) not found in allowed implementations: [(gl=egl-angle,angle=default),(gl=desktop-gl,angle=none),(gl=egl-gles2,angle=none),(gl=egl-angle,angle=swiftshader)].
[3090:0526/090351.651796:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
[3104:0526/090351.944697:ERROR:gpu_memory_buffer_support_x11.cc(44)] dri3 extension not supported.

これはRstudioがChromiumと同じようにhardware accelerated renderingを試みることに起因します. driverなどがうまい具合に対応しないと, rendering issueが発生してしまうことがしばしばあります. ですので対策としてはGPU renderingを停止させてしまえばよいということなります.

1
% export RSTUDIO_CHROMIUM_ARGUMENTS="--disable-gpu"

.zshrc.zshenvに記載すれば解決できます. または~/.config/RStudio/desktop.infoの設定ファイルに対して

1
2
[General]
desktop.renderingEngine=software

と記載する形でも対処できます.

References

Ubuntu package

Renv

Rstudio



Share Buttons
Share on:

Feature Tags
Leave a Comment
(注意:GitHub Accountが必要となります)