我在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
Run Code Online (Sandbox Code Playgroud)
怎么解决?
man*_*_va 45
对于R版本3.2.2(2015-08-14),应该解决此问题,因为R在安装过程中建议存储R库的不同路径.安装如下所示:(这里'random'用作示例包)
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
Run Code Online (Sandbox Code Playgroud)
所以在安装过程中回答"y"这两个问题都应该正确安装包.
更新18/01/19
如果您不想将R包存储在其他文件中:
正如Antoine-Sac和Robert TheSim指出的那样,您可以将自己添加到工作人员组中,以便能够写入"站点库".(点击名称查看他们的重要补充)
在此更新之前,我在本评论中提到了使用'chmod o + w'更改文件夹'site-library'的权限以便能够写入它的选项.假设安全问题,但当时我无法告知它,但主要是等待somone清除这一点.Antoine-Sac和Robert TheSim 在此期间也做到了这一点.谢谢!
小智 14
如果您使用的是 Windows,则可以以管理员身份运行 R(或 RStudio)。
关闭您的 R,然后转到 R 或 RStudio 图标,右键单击并“以管理员身份打开”。它工作得很好,安装软件包时的所有错误消息都消失了。
Ban*_*nas 10
对于尝试使用这样install.packages()的多个包的人:
install.packages("vcd","vcdExtra","plyr")
Run Code Online (Sandbox Code Playgroud)
并得到了类似的警告:
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
Run Code Online (Sandbox Code Playgroud)
你应该把包名放在一个向量中:
install.packages(c("vcd","vcdExtra","plyr"))
Run Code Online (Sandbox Code Playgroud)
因为第二个参数install.packages()是lib。
问题是默认安装位置是您没有写入权限的地方。
解决方案是使用您拥有写入权限的安装位置。
具体来说,我建议使用以下命令在不需要特殊权限的地方创建个人库文件夹,并且下次启动 R 时会自动检测到该文件夹:
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
Run Code Online (Sandbox Code Playgroud)
调用dir.create遵循此 faq 中的建议创建一个根据 命名的文件夹Sys.getenv("R_LIBS_USER")。这是一个不错的选择,因为它将在 R 的下一次启动时找到,因此您将能够使用install.packages并且library无需指定特殊位置。该.libPaths函数调用让我们避免立即加入新文件夹添加到库路径重启R。前两行仅在您尚未创建个人库时才需要,但重复运行它们没有坏处。之后,安装包和使用库就可以照常进行了。
将自己添加到名为"staff"的组中
sudo usermod -a -G staff your_user_name
Run Code Online (Sandbox Code Playgroud)
将your_user_name替换为您的登录用户名,然后注销并重新登录.
不要使用chmod 777,这违反了安全性和btw.完全没有意义!!!
| 归档时间: |
|
| 查看次数: |
58592 次 |
| 最近记录: |