当我在学校时,系统管理员安装了多个版本的R.我遇到了R-3.1.0的一个错误,需要重新安装一些过去版本的R用于开发,同时调查这个bug,但是我没有看到任何关于如何在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
我没有在R Installation and Administration指南或configure --help
中看到有关如何实现这一目标的文档。我正在运行Gentoo系统,ebuild会在安装时删除或覆盖以前版本的R,因此我可能会从源代码安装。
答案 0 :(得分:5)
是的,这很容易,因为Josh Ulrich的评论已经说过了。
人们通常会有关于r-devel安装的问题,以及您从发行版获得的基本R。我使用一个简单的shell脚本来构建/更新R-devel,以及两个匹配的脚本来运行R-devel和Rscript-devel。我不记得我是否在博客上发表过这篇文章,但人们似乎指出了包含它的r-sig-debian列表上的这篇旧帖子。 Here is a nice post by Michael详细说明了同样的过程。
通过创建新的子目录,您可以根据需要添加任意数量的R版本。但是,您应该将本地版本保留在/usr/local
中,并且可以为/usr/local/bin
中的二进制文件创建软链接。脚本R
本身将具有R_HOME_DIR
硬编码和“正常工作”。
Fancier方法涉及虚拟化,在Linux上你最好的选择是我现在正在玩的docker,我希望在某些方面详细说明针对多个编译器测试R包的目的。< / p>
答案 1 :(得分:0)
我不是R的专家,但在Linux上你可以随时使用schroot和debootstrap来创建一个新的独立环境,使用不同版本的R,库,......实际上我用它来编译RedHat的不同版本的代码,Ubuntu或Debian。
例如参见:https://wiki.ubuntu.com/DebootstrapChroot
(一旦你习惯它,创建一个新的chrooted系统将花费不超过20分钟)