インストールパスが書き込み可能ではないため、R パッケージを更新できません 質問する

インストールパスが書き込み可能ではないため、R パッケージを更新できません 質問する

私は、Web サイトのコードを使用して、R に Bioconductor をインストールしようとしています。コードを入力すると (下記参照)、一部のパッケージを更新できない、インストール パスが書き込み不可である、というエラー メッセージが表示されます。

> ## try http:// if https:// URLs are not supported
> source("https://bioconductor.org/biocLite.R")
Bioconductor version 3.4 (BiocInstaller 1.24.0), ?biocLite for help
> biocLite()
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.2 (2016-10-31).
installation path not writeable, unable to update packages: Matrix, mgcv,

生存

これらのパッケージは、packages/install packages に移動してインストールできます。

> utils:::menuInstallPkgs()
trying URL    'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/Matrix_1.2-8.zip'
Content type 'application/zip' length 2775038 bytes (2.6 MB)
downloaded 2.6 MB

trying URL 'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/mgcv_1.8-  16.zip'
Content type 'application/zip' length 2346257 bytes (2.2 MB)
downloaded 2.2 MB

trying URL     'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/survival_2.40-1.zip'
Content type 'application/zip' length 5109948 bytes (4.9 MB)
downloaded 4.9 MB

package ‘Matrix’ successfully unpacked and MD5 sums checked
package ‘mgcv’ successfully unpacked and MD5 sums checked
package ‘survival’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\stxeb8\AppData\Local\Temp\Rtmp2tQZ4v\downloaded_packages

その後、パッケージ/パッケージのロードに移動してパッケージを正常にロードし、検索してパッケージが存在することを確認できます。

> local({pkg <- select.list(sort(.packages(all.available =   TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
Loading required package: nlme
This is mgcv 1.8-16. For overview type 'help("mgcv-package")'.
> local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
> local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
> local({pkg <- select.list(sort(.packages(all.available =     TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
> search()
[1] ".GlobalEnv"            "package:survival"      "package:mgcv"         
[4] "package:nlme"          "package:Matrix"        "package:BiocInstaller"
[7] "package:stats"         "package:graphics"      "package:grDevices"    
[10] "package:utils"         "package:datasets"      "package:methods"      
[13] "Autoloads"             "package:base"         

しかし、その後、bioconductor をインストールしようとすると、Matrix、mgcv、survival を更新できないという同じエラー メッセージが表示されます。

> ## try http:// if https:// URLs are not supported
> source("https://bioconductor.org/biocLite.R")
Bioconductor version 3.4 (BiocInstaller 1.24.0), ?biocLite for help
> biocLite()
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.2 (2016-10-31).
installation path not writeable, unable to update packages: Matrix, mgcv,
  survival

これらのパッケージを更新して bioconductor をインストールできるようにするにはどうすればよいでしょうか?

ベストアンサー1

一般的に、R は追加の管理者権限なしでも動作するはずなので、システム フォルダーの権限を変更することはお勧めしません。

したがって、パッケージのインストールもお勧めしません。使用して管理者権限が必要です。将来これらのパッケージを更新するたびに、管理者権限が必要になります。

この問題を遡及し、将来のアップデートでこの問題を最小限に抑えるには、次の手順を実行する必要があります。

  1. 更新に失敗したパッケージをメモします (エラー メッセージに既に表示されています)。
  2. を使って、すべてのRパッケージがインストールされているフォルダを探します.libPaths()。これにより、2つの結果が表示されます。ホームフォルダそしてシステムフォルダ

「/home/USER/R/x86_64-pc-linux-gnu-library/XX」 「/usr/lib/R/library」

  1. install.packages(c("PKG1", "PKG2", "PKG3"))またはBiocManager::install(c("PKG1", "PKG2", "PKG3"))*を使用してパッケージをインストールします
  2. 管理者権限がある場合のみ: 古いパッケージフォルダを手動で削除しますシステムフォルダ("/usr/lib/R/library")、管理者権限(sudo)を使用するか、管理者権限でRを入力します。最後にもう一度そして実行しますremove.packages(c("PKG1", "PKG2", "PKG3"), lib = "/usr/lib/R/library")

*インストール パスに問題がある場合は、手順 3 のいずれかのインストール関数に引数を追加します。, lib = "/home/USER/R/x86_64-pc-linux-gnu-library/X.X"この引数は、ホーム フォルダーにインストールすることを明示的に指定します。

このアプローチには、少なくとも Arch Linux の公式 R リポジトリでは 1 つの問題があります。R が更新されるたびに、更新されたバージョンにはシステム フォルダー内のパッケージがまだ含まれており、管理者権限がないと更新できません。したがって、R の更新ごとに、この手順を繰り返す必要があります。特にあなたに注目していますsurvival!!!

*編集: 注目すべきはバイオライトBioConductorパッケージのインストールには推奨ツールではなくなりました。代わりに以下を使用してください。バイオマネージャーは、公式の CRAN リポジトリ ( install.packages("BiocManager")) にあります。

** 2 回目の編集: この回答はまだ投票を受けているため、回答を更新して整理しました。

おすすめ記事