库不可写

时间:2015-09-12 10:17:28

标签: r ubuntu

我在Ubuntu机器上的R 3.0.2(2013-09-25)软件包安装过程中遇到此问题:

install.packages("randomForest")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "/usr/local/lib/R/site-library"' is not writable

如何解决?

9 个答案:

答案 0 :(得分:43)

对于R版本3.2.2(2015-08-14),应该解决此问题,因为R在安装过程中建议存储R库的不同路径。安装如下: (这里'随机'用作示例包)

install.packages('random')

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("random") :
'lib = "/usr/local/lib/R/site-library"' is not writable

Would you like to use a personal library instead?  (y/n) y

Would you like to create a personal library
~/R/pc-linux-gnu-library/3.2
to install packages into?  (y/n) y

因此,在安装过程中,使用“y”回答这两个问题时,应正确安装包。

更新18/01/19

如果您不想将R包存储在其他文件中:

由于Antoine-SacRobert TheSim指出您可以将自己添加到工作人员组,以便能够写入“网站库”。 (单击名称以查看其重要添加内容)

在此更新之前,我在本评论中提到了使用'chmod o + w'更改文件夹'site-library'的权限以便能够写入的选项。假设安全问题,但当时我无法告知它,但主要是等待somone清除这一点。 Antoine-Sac和Robert TheSim同时have done so。谢谢!

答案 1 :(得分:7)

将自己添加到名为“员工”的小组

sudo usermod -a -G staff your_user_name

将your_user_name替换为您的登录用户名,然后注销并重新登录。

请勿使用chmod 777,这违反了安全性和btw。完全没有意义!!!

答案 2 :(得分:4)

这正是它所说的。您没有该文件夹中的写入权限。您需要change the permissions for that folderchange the R library location

答案 3 :(得分:3)

install.packages('random')

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("random") :
'lib = "/usr/local/lib/R/site-library"' is not writable

关闭你的R,然后转到R或RStudio图标,右键单击并“以管理员身份打开”。它完美运行,安装包时的所有错误消息都永远消失了

答案 4 :(得分:1)

对于将 install.packages()与多个软件包一起使用的人

install.packages("vcd","vcdExtra","plyr")

并得到相同的警告:

Warning in install.packages :
  'lib = "vcdExtra"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) cancel
Error in install.packages : unable to install packages

分别安装每个对我有用

install.packages("vcd")
install.packages("vcdExtra")

答案 5 :(得分:0)

问题是默认安装位置是您没有写权限的地方。

解决方案是使用您确实具有写权限的安装位置。

特别是,我建议使用以下命令在不需要特殊权限的位置创建个人图书馆文件夹,并且下次启动R时会自动检测到该文件夹​​: / p>

dir.create(Sys.getenv("R_LIBS_USER"), recursive = TRUE)  # create personal library
.libPaths(Sys.getenv("R_LIBS_USER"))  # add to the path

install.packages("randomForest")  # install like always
library(randomForest)  # use library like always

dir.create的调用遵循this faq中的建议,以创建一个根据Sys.getenv("R_LIBS_USER")命名的文件夹。这是一个不错的选择,因为它将在R的下一次启动时找到,因此您可以使用install.packageslibrary而无需指定特殊位置。通过.libPaths函数调用,我们可以通过立即将新文件夹添加到库路径来避免重新启动R。仅在尚未创建个人库的情况下才需要前两行,但是重复运行它们不会有任何危害。之后,可以照常安装软件包并使用库。

答案 6 :(得分:-1)

如果您使用R与RStudio,而不是使用托盘图标启动RStudio,请使用sudo rstudiosudo R使用命令行启动Rstudio或R.

它肯定会解决您的问题,对我有用。它需要sudo权限才能在安装目录中编写内容。

答案 7 :(得分:-1)

如果您使用的是OS Windows 10,则可能启用了勒索软件保护。您需要禁用它。

我面临着同样的问题。我有权写东西。但突然停了下来。我无法安装软件包。禁用勒索软件防护对我有用。

答案 8 :(得分:-3)

您可以更改“site-library”和所有包含目录的权限。

sudo chmod 777 -R / usr / local / lib / R / site-library