web-dev-qa-db-ja.com

インストールパスは書き込み不可R、パッケージを更新できません

私は彼らのウェブサイトのコードを使用して、バイオコンダクターをRにインストールしようとしています。コードを入力すると(以下を参照)、一部のパッケージを更新できないことを示すエラーメッセージが表示されます。インストールパスは書き込みできません。

> ## 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

次に、packages/load 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"         

しかし、その後、生体伝導体をインストールしようとすると、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

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

18
Eleanor Bellows

それは私にとって許可の問題でした。最初に、installed.packages()[, c("Package", "LibPath")]を使用してパッケージがインストールされている場所を特定しました。これにより、パッケージの名前と場所を含む長い2列のマトリックスが出力されます。次に、問題のあるパッケージの場所が表示されます。私の場合、彼らは/usr/lib/R/site-libraryおよび/usr/lib/R/library。次に、chmodでこれらのフォルダーのアクセス許可を変更しました(chmod -R 777メインRフォルダーでは、これは私のパーソナルコンピューターなので、セキュリティはここでは大きな問題ではないと思います)。

14
Deleet

Martin Morganが答えたように、エラーメッセージにもかかわらず、Bioconductorパッケージはインストールされるべきでした。ただし、これは将来のパッケージ更新を行うときに引き続き発生します。

一般に、Rのようなプログラムは管理者権限がなくてもうまく機能するはずなので、システムフォルダーのアクセス許可を変更することはお勧めしません。

システムフォルダーのアクセス許可の変更を回避する場合、パッケージを更新する必要があるたびにそうする必要があるため、パッケージをインストールしないようにアドバイスしますsing管理者権限!

これを解決する最善の方法は、以前に管理者権限でインストールされたパッケージを再インストールすることです。パッケージは、Bioconductorによって生成されたエラーコードから識別できます。あなたの場合、これらのパッケージは_Matrix, mgcv, survival_です-エラーメッセージはCRANパッケージとBioconductorパッケージを区別しないことに注意してください。これには、以前に管理者権限でインストールされたすべてのパッケージが含まれます。

報告されたパッケージを削除するには、R 管理者権限を持つ(できれば最後に)を開き、remove.packages()を使用して、報告されたパッケージ(Bioconductorパッケージを含む)をすべて削除します。あなたの場合:

_remove.packages(c("Matrix", "mgcv", "survival"))
_

これらのパッケージを再インストールする前に、終了してからRを再起動します管理者権限なし。これで、CRANパッケージを再インストールできます。

_install.packages(c("Matrix", "mgcv", "survival"))
_

パッケージをローカルディレクトリにインストールするかどうかを尋ねられます。そこにyesと入力します。

インストールが成功しない場合は、ローカルのRディレクトリ(home/userフォルダー)を見つけて、_lib =_として追加します。 Linuxでは、コマンドは次のようになります。

_install.packages(c("Matrix", "mgcv", "survival"), lib = "~/R/x86_64-pc-linux-gnu-library/3.5")
_

バイオコンダクタパッケージが以前に管理者権限でインストールされている場合:

_library(BiocInstaller)
biocLite(c("PACKAGE1", "PACKAGE2"))
_

再度、ローカルディレクトリにインストールできない場合は、biocLite()コマンドに_lib =_引数を追加します。

いくつかの「推奨」パッケージが2つの場所にインストールされているように見えます-書き込みアクセス権のないディレクトリの管理者アカウントと、書き込みアクセス権のあるディレクトリのRStudioによって。 biocLite()は前者について不平を言っています。

biocLite()が、インストールできない(更新できない)Bioconductorパッケージについて不満を言わない限り、問題はなく、基本的なBioconductorパッケージは正常にインストールされています。 https://support.bioconductor.org を参照してください。今後のバイオコンダクター関連のサポートについて。

2
Martin Morgan

WindowsでR/Rstudioを実行している場合は、管理者としてR/Rstudioを開いてください。アイコンを右クリックして、管理者として実行します

0
Waleed Aldhahi

R 3.6.1のバージョンでは、スクリプト http://bioconductor.org/biocLite.R がこのメッセージを返すため、「エラー:Rバージョン3.5以降では、BiocManagerを使用してBioconductorパッケージをインストールします。参照- https://bioconductor.org/install "次の手順で問題を解決しました。

  1. Rがライブラリをインストールするために使用するディレクトリのリストを取得し、次を使用して書き込み権限を持つものを選択します。.libPaths()
  2. install.packages("BiocManager")を使用して「BiocManager」ライブラリをインストールする
  3. BiocManager::install("Rgraphviz", lib = "C:/Users/tizbet/Documents/R/win-library/3.6")を使用して、ディレクトリに書き込み権限を強制することによるライブラリ「bioconductor」のインストール

私は次のRインストールに取り組みました。

_platform x86_64-w64-mingw32_、_Arch x86_64_、_os mingw32_、_system x86_64, mingw32_、version.string R version 3.6.1 (2019-07-05)

Kasper Thystrup Karstensenの回答に触発されました

0
Tiziano

1つの解決策は、ターミナルを開き、管理者権限を使用してRをロードすることです

Sudo R
update.packages()
source("https://bioconductor.org/biocLite.R")
biocLite()

その後、更新できます。しかし、注意してください。これにより、ユーザーが所有することになっているディレクトリに管理者がパッケージを作成できます。

この場合、Rをルートとしてロードするのではなく(次の更新まで問題を解決しています)、. libPaths()を確認します。ディレクトリのリストが表示されます。

.libPaths()
"/home/it_s_me/R/x86_64-pc-linux-gnu-library/3.4" "/usr/lib/R/library"

私の場合、「/ usr/lib/R/library」内のすべてのパッケージはrootが所有し、1つを除くすべてのパッケージは「/ home/itsame/R/x86_64-pc-linux」の通常のユーザー(rootではない)が所有しています。 -gnu-library/3.4 "。

管理者権限を持っている場合、簡単な解決策はすべての場所でchownを実行することです。たとえば、curlパッケージの更新で問題が発生しました。私が使用した:

Sudo chown -R it_s_me /home/it_s_me/R/x86_64-pc-linux-gnu-library/3.4/curl/
0
Gildas