【发布时间】:2017-11-09 06:55:03
【问题描述】:
这台 Linux 机器上安装的所有 R 包都安装在/usr/lib/R/library 中。我想将这些包移动到另一个位置,例如/home/username/.R_libs。我不仅想在这个新位置安装包,还想将所有以前安装的包迁移到那个位置。
.libPaths() 的输出为:
[1] "/home/username/.R_libs" "/usr/lib/R/library"
但是,如果我只是移动所有的包裹,像这样:
sudo mv /usr/lib/R/library/* /home/username/.R_libs/
R 无法再启动,因为它似乎无法找到基础包。
关于环境变量,$R_LIBS 设置为/home/username/.R_libs,而$R_HOME 和$R_LIBS_USER 在shell 中未设置。但是,出于某种原因:
> Sys.getenv("R_LIBS")
[1] "/home/username/.R_libs"
> Sys.getenv("R_HOME")
[1] "/usr/lib64/R"
> Sys.getenv("R_LIBS_USER")
[1] "~/R/x86_64-pc-linux-gnu-library/3.4"
注意~/R/x86_64-pc-linux-gnu-library/3.4 不存在,我不想创建它,我只想使用/home/username/.R_libs。
简而言之,我希望从现在开始 R 将只考虑 /home/username/.R_libs 并始终将库安装到该位置(或从该位置读取库)而不要求确认或其他选项。
如果我理解正确的话,最好的选择可能是只移动非基础包,即手动安装的包。这可能吗?这可以做到吗? 请注意,我不想卸载然后重新安装所有软件包,
【问题讨论】:
-
export R_LIBS="/home/username/.R_libs" -
@Masoud 对不起,我不明白。
R_LIBS已经设置为我希望包所在的文件夹,即/home/username/.R_libs -
您可以在 R
.libPaths("/home/username/.R_libs")中运行它 -
@Masoud
.libPaths()已经返回[1] "/home/username/.R_libs" "/usr/lib/R/library"。应该有什么区别? -
我的意思是你想将它设置为默认值。但是,让我们暂停讨论。在确定它对你有用后,我会发布一个答案。
标签: r linux package installation