当我在学校时,系统管理员安装了多个R版本。在调查此错误的同时,我遇到了R-3.1.0的错误,需要重新安装R的某些先前版本进行开发,但是我没有看到有关如何在R上具有多个并发版本的文档。同一系统ti应该看起来像
$ ls -l /usr/lib | grep R-
lrwxrwxrwx 1 root root 8 Jun 3 09:41 R -> R-3.1.0/
drwxr-xr-x 9 root root 4096 May 15 11:56 R-3.1.0
drwxr-xr-x 9 root root 4096 May 15 11:56 R-3.0.3
$ ls -l /usr/bin | grep R-
lrwxr-xr-x 1 root root 8 Jun 3 09:41 R -> R-3.1.0
-rwxr-xr-x 9 root root 4096 May 15 11:56 R-3.1.0
-rwxr-xr-x 9 root root 4096 May 15 11:56 R-3.0.3
Run Code Online (Sandbox Code Playgroud)
在“ R安装和管理指南”或configure --help
。我正在运行Gentoo系统,并且ebuild在安装时会删除或覆盖R的先前版本,因此我很可能会从源代码进行安装。
是的,这很简单,正如Josh Ulrich的评论已经说过的那样。
人们通常会在安装R-devel以及从发行版中获得的基本R时遇到这个问题。我使用一个简单的外壳脚本来构建/更新R-devel,并使用两个匹配的脚本来运行R-devel和Rscript-devel。我记不记得我是否写过博客,但是人们似乎指向包含它的r-sig-debian列表上的这一较早的帖子。这是Michael的精彩文章,详细介绍了相同的过程。
通过创建新的子目录,您可以根据需要添加任意多个R版本。/usr/local
不过,您应该保留本地构建,并且可以为中的二进制文件创建软链接/usr/local/bin
。脚本R
本身将具有R_HOME_DIR
硬编码且“正常工作”。
更高级的方法涉及虚拟化,在Linux上,您最好的选择是我现在正在玩的docker,我希望在某个时候详细介绍一下针对多个编译器等测试R包的目的。