我想在Linux上将几个R库(*)从一个驱动器移动到另一个驱动器,并且想知道一个简单的移动是否可行且安全,或者我是否应该卸载并重新安装软件包.我意识到库的位置是.libPaths()通过"R安装和管理"手册查找并查看了有关迁移库的信息,但没有看到推荐的过程.
我认为有三种选择:
remove.packages()所有非基本软件包,然后重新安装install.packages(lib = "/path/to/new/location").mv并使用符号链接指向新位置(最终删除符号链接)mv在Linux命令移动目录批发和更新.Library.site中R_HOME/etc/Rprofile.site,如建议[R安装和管理手册选项#1是生硬的.选项#2应该有效,但似乎有点不合理.
#3是安全还是存在严重问题?我发现的问题是:目录权限以及任何包的设置存储绝对路径而不是相对路径(这似乎不健全且不必要)的可能性.
关于绝对路径的存储,我发现rJava存储了R_HOME一个名为的文件的位置run.这不是一个问题库本身,但它是保持一个绝对路径的专用副本包(和好包在那)的一个指示.
(*)有几个库和许多包.当然,只移动库(目录),但包可能会受到影响.
更新1 /澄清:只是为了澄清:我只是迁移库,而不是更改R的版本或软件包的版本.更新R或包可以单独完成,但问题是移动库是否可行.似乎如果有必要更新或重新安装所有软件包以确保正确安装,那么这是一个类似于选项#1而不是选项#3的路径.
更新2:另一篇SO帖子的答案对于如何在升级时避免此问题有一些好主意.我不是升级R,但Dirk Eddelbuettel关于不在R的filetree中安装软件包的建议是明智的.