88

Rcpp パッケージをダウンロードすると、次のエラーが表示されます。

> install.packages("Rcpp", dependencies=TRUE)
Installing package(s) into ‘/home/me/src/Rlibs’ (as ‘lib’ is unspecified)
trying URL 'http://cran.us.r-project.org/src/contrib/Rcpp_0.10.2.tar.gz'
Content type 'application/x-gzip' length 2380089 bytes (2.3 Mb)
...
Warning in dir.create(lockdir, recursive = TRUE) :
  cannot create dir '/home', reason 'Permission denied'
ERROR: failed to create lock directory ‘/home/me/src/Rlibs/00LOCK-Rcpp’
...

私のマシンはコンピューター クラスター上にあるため、さまざまなノードで試しましたが、/tmp にダウンロードされた一時ファイルを慎重に削除しました。奇妙なのは、/home/me/src/Rlibs/ に書き込む権利があることです。だから私の質問は:

  1. R は、/home/me/ でのみ書き込み権限が必要なのに、なぜ /home で書き込み権限が必要なのですか?
  2. どうすればエラーを修正できますか?

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-redhat-linux-gnu (64-bit)
locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=C                 LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
 [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
loaded via a namespace (and not attached):
[1] tools_2.15.2
4

5 に答える 5

164

NFS ファイル システムでは、何を閉じる必要があるかが明確でない場合があります。

これを回避する最善の方法は--no-lock、コマンド ラインで引数を使用することです。

R CMD INSTALL --no-lock <pkg>

R 内から、次を使用してコマンド内からこれを行うことができます。

install.packages("Rcpp", dependencies = TRUE, INSTALL_opts = '--no-lock')
于 2013-01-17T22:09:04.363 に答える
0

これは、R のメジャー バージョンにアップグレードしている場合にも発生する可能性があります。R 4.0 などの一部の主要なアップグレードでは、パッケージを再構築する必要があります。私の場合、Homebrew を使用して R をインストールbrew install Rし、長い間維持していましたが、4 にアップグレードしたときにパッケージを再度ビルドする必要があり、この問題に遭遇しました。

これを解決するには、Homebrew が古い R インストールの残り物を確実に削除するようにする必要があります。デフォルト設定では、ここにあり/usr/local/lib/Rます。のインスタンスがあり3.53.6残りの R の内部に加えて。そこにあるものをすべて削除して、R を再度インストールすると、すべて正常に動作するはずです。または、古いバージョンの R を削除して、4.0. ただし、クリーンインストールをお勧めします。

したがって、Homebrewを使用して R を保守していて、この問題に遭遇した場合は、次のように修正します。

brew uninstall R
rm -r /usr/local/lib/R
brew install R
于 2020-05-06T12:06:55.133 に答える