不要使用R系统库

时间:2019-03-01 14:34:23

标签: r package

我正在尝试使用安装了R的Linux服务器。显然,R系统库安装了旧版本的非基本软件包,例如dplyr和testthat。 因为我没有编辑系统库的权限,所以我无法更新软件包。

我的计划是仅使用用户库,因此我可以自己控制软件包的版本。但是,我无法从"/usr/lib64/R/library"删除.libPaths()文件夹。我尝试将具有R_LIBS_SITER_LIBS文件的环境变量.Renviron.Rprofile更改到另一个文件夹,但是/usr/lib64/R/library文件夹将始终存在。使用命令.libPaths(.libPaths()[1:2])删除它也不起作用。

是否可以从.libPaths()删除系统库,所以我不依赖服务器管理员的更新策略吗?

2 个答案:

答案 0 :(得分:1)

对我来说,它可以使用

 .libPaths(.libPaths()[2:1])

这仍然会搜索系统库,但是只有之后会搜索我的个人库,因此,如果我有较新的版本,它将使用该库。 注意:我使用.libPaths()[2:1]而不是.libPaths()[1:2]

答案 1 :(得分:1)

您不能删除系统库,因为这是基本软件包所在的位置。它们无法安装在其他任何地方,没有它们,R将无法工作。

最好是让您的系统管理员来更新系统库。这些过时的软件包可能包含错误。

如果无法执行此操作,请运行update.packages(instlib = "local")以将所有最新版本安装在名为"local"的库中。 (当然,请用您自己的本地库名代替。)这要求所有用户在启动时指定.libPaths("local"),有些用户可能会忘记,所以效果不佳。

对于您来说,最简单的方法是在自己的帐户中安装R的完整副本。这样您就可以控制一切,使用副本的任何人都将获得您的书架。

(将在十天内发布一个新版本(3.5.3);您可以等待,或者安装一个应该立即可用的beta或RC,然后在最终版本到达时再次进行更新。)< / p>