不要使用R系统库

问题描述 投票:0回答:2

我正在尝试使用安装了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()中删除系统库,所以我不依赖于服务器管理员的更新策略?

r package
2个回答
1
投票

对我来说,它可以使用

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

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


1
投票

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

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

如果你不能这样做,那么运行update.packages(instlib = "local")来安装名为"local"的库中的所有最新版本。 (当然,替换你自己的本地lib名称。)这要求所有用户在启动时指定.libPaths("local"),有些人可能会忘记,所以它不是那么好。

您可能最容易在自己的帐户中安装R的完整副本。然后你就可以掌控一切,任何使用你副本的人都会得到你的图书馆。

(有一个新版本(3.5.3)将在十天内发布;您可能会等待,或安装一个现在应该可用的测试版或RC,然后在最终版本到达时再次更新。)

© www.soinside.com 2019 - 2024. All rights reserved.