【发布时间】:2017-02-14 05:17:50
【问题描述】:
当你尝试在 R 中安装一个包并且你没有访问默认库路径的权限时,R 会询问你:
您想改用个人图书馆吗?
您想创建一个个人库“~/path”来安装吗 打包成?
但是,如果您正在运行 Rscript,这些消息将不会显示并且安装将失败。我可以预定义一个特定的路径并指示 install.packages 使用它,但我不想创建一个特定于这个 Rscript 的附加库路径。我只想使用默认的个人库。有没有办法强制创建个人库而不需要交互?
【问题讨论】:
-
更新
.libPaths()? -
您应该完整阅读
help(".libPaths"),install.packages上的帮助提供了一个链接。 "库搜索路径在启动时从环境变量R_LIBS(应该是一个冒号分隔的R库树根目录列表)初始化,然后是环境变量R_LIBS_USER中的那些。只有目录将包括当时存在的。默认情况下,R_LIBS未设置,R_LIBS_USER设置为主目录的目录‘R/R.version$platform-library/x.y’(或 CRAN OS X 版本的‘Library/R/x.y/library’),用于 R xyz`我> -
(空间不足) 话虽如此,我并不喜欢实际安装包的分析脚本。我也可能是少数,并且也是一个强迫性可疑的网络安全家伙,但我宁愿有一个我手动运行的 pkg 安装脚本或一个脚本中的预检检查,然后通知我我缺少什么,特别是如果脚本依赖于较旧或较新版本的软件包,并且出于某种原因我正在运行特定版本。
-
最好有一个预先在与分析脚本不同的上下文中运行的安装脚本。但是,如果该安装脚本本身是完全自动化的,则需要一种直接的方法来安装用户(非 root)软件包,而无需任何手动交互。例如
pip有一个简单的user标志,可以通过它来告诉它使用当前用户的主目录而不是系统目录。install.packages已经具有执行此操作并确定用户包应该去哪里的功能。它应该有一个user可选参数,我可以将其设置为TRUE。 -
我现在解决它的方法是让安装脚本创建
~/.local/lib/R,然后使用R_LIBS_USER=~/.local/lib/R R运行R