The following package(s) will be updated in the lockfile:
# CRAN -----------------------------------------------------------------------
- boot [1.3-32 -> *]
- brio [1.1.5 -> *]
- cluster [2.1.8.1 -> *]
- codetools [0.2-20 -> *]
- desc [1.4.3 -> *]
- downlit [0.4.5 -> *]
- fansi [1.0.7 -> *]
- foreign [0.8-90 -> *]
- ggrepel [0.9.6 -> *]
- mgcv [1.9-3 -> *]
- necountries [0.1-1 -> *]
- nlme [3.1-168 -> *]
- nnet [7.3-20 -> *]
- rbibutils [2.4.1 -> *]
- Rdpack [2.6.5 -> *]
- rpart [4.1.24 -> *]
- spatial [7.3-18 -> *]
- survival [3.8-3 -> *]
- xml2 [1.5.2 -> *]
- Lockfile written to "~/work/maple60.github.io/maple60.github.io/renv.lock".
GitHub Actionsとrenvを使ってr-universeのパッケージを利用する際の注意点
症状
このウェブページでは、GitHub Actionsを利用して、GitHub Pagesを作成しています。 このとき、Rパッケージはrenvを利用して管理しています。 このとき、r-universeのパッケージを利用していると、GitHub Actionsの環境でrenvが正しく動作しないことがありました。
具体的には、rnaturalearthhiresというパッケージを使用した記事を書いた後に、ビルドしたら、以下のようなエラーが発生しました。
# Downloading packages -------------------------------------------------------
- Querying repositories for available source packages ... Done!
Error: code 22]
このエラーは、GitHub Actionsの環境でrenvがr-universeのパッケージを正しく認識できないことが原因でした。
対処法
renv.lock ファイルを確認すると、“Repositories”の部分に、r-universeのURLが含まれていませんでした。 このため、GitHub Actionsの環境でrenvがr-universeのパッケージを認識できないことが原因でした。
renv.lock
{
"R": {
"Version": "4.5.2",
"Repositories": [
{
"Name": "CRAN",
"URL": "https://cran.rstudio.com"
}
]
},
"Packages": {以下のコードをローカル環境で実行して、renv.lock ファイルの “Repositories” の部分に、r-universeのURLを追加することで、GitHub Actionsの環境でrenvがr-universeのパッケージを認識できるようになりました。
このコードでは、options()関数を使って、CRANとr-universeのリポジトリを指定しています。 その後、renv::snapshot(force = TRUE)を実行して、renv.lock ファイルを更新しています。
このコードを実行すると、renv.lock ファイルの “Repositories” の部分に、r-universeのURLが追加されます。
renv.lock
{
"R": {
"Version": "4.5.2",
"Repositories": [
{
"Name": "CRAN",
"URL": "https://cran.rstudio.com"
},
{
"Name": "r-universe",
"URL": "https://ropensci.r-universe.dev"
}
]
},
"Packages": {その後、変更をコミットして、GitHub Actionsでビルドすると、エラーが解消されて、r-universeのパッケージを利用できるようになりました。