rig
R の多機能なインストールマネージャーです。簡単に R のインストールやアップデート、複数のバージョンのインストールと切り替えが行えます。機能の詳細や、各 OS ごとのインストールについては、次の rig のサイトで確認してください。
- rig のインストール時に、次の P3M のリポジトリの追加と、pak のインストールが同時に行われるので、R を新規インストールするときは、rig を使うことをおすすめします
- rig は、既存の R を管理しません。rig を利用したいときは、R をアンインストールしてから、rig でインストールし直すのが良いと思います
- rig をインストールした場合は、次の P3M のリポジトリの追加と pak のインストールは必要ありません(二度目になりますが念の為)
P3M(Posit Public Package Manager)
P3M では、CRAN、PyPI、Bioconductor からのパッケージの検索とインストールが行えます。特に、Posit によりビルドされた CRAN のバイナリパッケージを使うことで、インストールを高速化することができます。
- リポジトリの追加方法は、ユーザーガイドを御覧ください
- Linux で、バイナリービルドパッケージを使用してインストールを高速化したいときは、Set up your environment to install R packages from cranの「Linux Distribution: what linux distribution are you using?」でディストリビューションを選択してください
- リポジトリ設定のコード例
- これは、debian12 の場合です
- P3M の URL は上で取得したURLに変更してください
- R のコンソールで実行する
P3M のリポジトリの設定local({ repos <- c(P3M = "https://packagemanager.posit.co/cran/__linux__/bookworm/latest") options(repos = c(repos, getOption("repos"))) })
- この設定は、現在開いているセッションのみ有効です
- 常にリポジトリ設定が有効になるようにするには
- 次のコードを R のコンソールで実行すると
.Rprofile
に上のコードを追加することができます - やはり P3M の URL は、自分の環境にあった URL に変更してください
.Rprofile に追加add.Rprofile <- 'local({ repos <- c(P3M = "https://packagemanager.posit.co/cran/__linux__/bookworm/latest") options(repos = c(repos, getOption("repos"))) }) ' cat(add.Rprofile, file = ".Rprofile", append = TRUE)
- 自分の環境では正しく動作することを確認していますが、実行は自己責任でお願いします
- 次のコードを R のコンソールで実行すると
- 現在設定されているリポジトリは、
getOption("repos")
で確認できます
- ここまで R での使用を前提に書いてきましたが、P3M は、Python でも使えます。Configuring Python Environments
pak
pak を使えば pak::pkg_install()
だけで、install.packages()
やdevtools::install_github()
の代わりに、CRAN、Bioconductor、GitHub、URL、gitリポジトリ、ローカルファイルやディレクトリから R パッケージをインストールすることができます。他の機能や各 OS の対応状況は、次の pak のサイトで確認してください。
- 特に、Linux で pak を使う上で嬉しいのは、パッケージインストール時にシステム依存関係を確認して、必要なシステムパッケージを自動的にインストールしてくれるところです
- 既存の R にバイナリビルドパッケージをインストールするときは、R のコンソールで次のコードを実行してください
- 1行のコードでは見にくいので、All about installing pak.に載っている方のコードを記載しておきます
バイナリビルドパッケージのインストールinstall.packages("pak", repos = sprintf( "https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch ))
- インストール関数は、
pak::pkg_install()
と書いたが、実はpak::pak()
というとても入力が速く簡単な関数でパッケージのインストールが行える例pak::pak("tidyverse")
- これだけで debian12(chromebook)において、事前にシステム依存ファイルをインストールすることなく、
tidyverse
のインストールができた - P3M とともに使用して
tidyverse
のインストールが2分弱でできた - これに感動してこの記事を書いた
- これだけで debian12(chromebook)において、事前にシステム依存ファイルをインストールすることなく、