如何在Debian上安装2个不同的R版本?

Jor*_*eys 11 installation debian r lenny

在我们的服务器上,按照http://cran.r-project.org/bin/linux/debian/上的说明安装R 2.12.1 ,使用apt-get install等等.

由于情况,旧的lenny机器还没有更新到新的稳定debian,看起来这不会很快发生.由于这里的一些研究取决于最新版本的VGAM,我们需要在debian上安装R 2.14.0.但是为了保持旧代码的运行,我们不能只丢弃R 2.12.1(在此版本上安装VGAM 0.8.4会产生错误).

所以我们需要安装2个R版本.从我理解的小,如果我们只是使用apt-get upgrade旧版本将被新的替换.我一直在阅读大量文档,但我找不到这样做的最佳方式.

我现在唯一想象的就是尝试从源代码构建最新的R,但我的同事并不是非常热衷于这个想法,并促使我首先寻找另一个解决方案.我错过了任何信息,或者是否有人愿意向我展示完成这项工作的小技巧?如果从源头构建解决方案,我想知道任何陷阱或可能的问题.

Oz1*_*123 7

您可以使用正确的编译标志安装不同版本的ANY软件.使用--help运行configure脚本时,您应该看到一个选项以查看安装根目录.

看一眼

./configure --help
...
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
Run Code Online (Sandbox Code Playgroud)

所以你可以安装R-2.14到:

/usr/local/R/2.14
Run Code Online (Sandbox Code Playgroud)

你可以安装R-2.12到:

/usr/local/R/2.12
Run Code Online (Sandbox Code Playgroud)

当您启动configure脚本时:

./configure --prefix=/usr/local/R/2.14
Run Code Online (Sandbox Code Playgroud)

等等.


Dir*_*tel 5

正如我在评论中提到的,这在理论上是可能的,就像某些包系列(Emacs、PostgreSQL 等)允许多个并发版本一样。

我现在无法提供,因为我们使用了/usr/{share,lib}/R哪些冲突。如果我要做到这一点/usr/{share,lib}/R-$version,然后使用dpkg-alternatives翻转到默认的首选,我们可能会这样做。问题是过渡。此功能由少数用户使用,使用它可能会给大多数人带来错误,直到它稳定为止。另外,我没有空闲时间(但如果其他人想这样做,请这样做)。

在此期间,您可以

  1. 可能使用高级功能dpkg并将其解压缩到本地目录而不是下面的默认值/- 所以/opt/R/oldversions/2.12.1应该是可能的。R 甚至可以运行,您需要相应地重新定义$RHOME

  2. /usr/local如果您真的必须,只需将本地变体构建到

  3. 如果特定的 CRAN / 非 CRAN 包声称需要特定版本的 R,请修复该死的包!;-)

最后,这是一个主题,r-sig-debian例如 CRAN 维护者 Michael 和 Johannes 不会在这里阅读这个线程。