簡體   English   中英

R install.packages 返回“無法創建鎖定目錄”

[英]R install.packages returns "failed to create lock directory"

下載 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 中有寫權而它只需要在 /home/me/ 中的寫權?
  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

在 NFS 文件系統上,有時需要關閉哪些內容並不明顯。

避免這種情況的最好方法是在命令行上使用--no-lock參數,即:

R CMD INSTALL --no-lock <pkg>

在 R 中,您可以使用以下命令在命令中執行此操作:

install.packages("Rcpp", dependencies = TRUE, INSTALL_opts = '--no-lock')

當您的上次軟件包安裝異常中斷時,就會發生這種情況。 要解決此問題,您應該刪除鎖定的文件。 例如在 R 控制台中執行此命令:

unlink("/home/me/src/Rlibs/00LOCK-Rcpp", recursive = TRUE)

希望這可以幫助!

避免此問題的最簡單方法是在安裝任何軟件包之前運行以下行

options("install.lock"=FALSE)

然后嘗試 install.packages("name_of_package") 安裝包。 00LOCK 錯誤不會出現。

當您升級到 R 的主要版本時也會發生這種情況。 一些重大升級需要您重新構建軟件包,例如 R 4.0。 就我而言,我使用 Homebrew brew install Rbrew install R並維護了很長時間,但是當我升級到 4 時,我不得不再次構建包並遇到了這個問題。

要解決它,您需要確保 Homebrew 刪除舊 R 安裝的剩余部分。 在默認設置中,您可以在這里找到它們, /usr/local/lib/R 除了 R 內部的其余部分之外,我還有3.53.6實例。 您可以刪除那里的所有內容,然后再次安裝 R,一切都應該正常工作。 或者只是刪除舊版本的 R,並清空4.0 不過,我建議進行全新安裝。

因此,如果您使用 Homebrew 維護 R並遇到此問題,請按照以下方法解決:

brew uninstall R
rm -r /usr/local/lib/R
brew install R

我在運行 Windows 7 時遇到了類似的問題:

install.packages 中的錯誤:錯誤:無法鎖定目錄“D:\\Program Files\\R\\R-3.6.2\\library”以進行修改。

我在 R 控制台中使用以下命令解決了這個問題:

unlink("D:\\\\Program Files\\\\R\\\\R-3.6.2\\\\library/00LOCK", recursive = TRUE)

希望這可以幫助 Windows 用戶...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM