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

时间:2011-12-01 15:18:36

标签: r installation debian lenny

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

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

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

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

4 个答案:

答案 0 :(得分:7)

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

看看

./configure --help
...
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]

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

/usr/local/R/2.14

你可以将R-2.12安装到:

/usr/local/R/2.12

启动配置脚本时执行:

./configure --prefix=/usr/local/R/2.14

等等。

答案 1 :(得分:4)

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

我现在无法提供,因为我们使用/usr/{share,lib}/R冲突。如果我要制作/usr/{share,lib}/R-$version,然后使用dpkg-alternatives翻转为默认的首选,我们可能会这样做。问题是转型。少数用户使用此功能,获取它可能会导致大多数错误,直到这是稳定的。另外,我没有空余时间(但如果其他人想要这样做,请这样做)。

与此同时,你可以

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

  2. 如果确实

  3. ,只需将本地变体构建到/usr/local
  4. 如果特定的CRAN /非CRAN软件包声称需要特定版本的R,请修复该死的软件包! ; - )

  5. 最后,这是r-sig-debian的主题,例如CRAN维护者Michael和Johannes不会在这里阅读这个帖子。

答案 2 :(得分:3)

我认为如果没有提供多个版本的debian repo,如果不从源代码编译R,很难保持两个版本的R运行顺畅。

我经常做的是在我的家庭目录中安装R,因为我们学院没有给我们root权限。要在系统范围内安装R版本的源代码,可以将其安装在单独的目录中(例如/opt/R2.14)并使用:

./configure --prefix=/opt/R2.14/

最后一步是创建一个指向R二进制文件的符号链接:

ln -s /opt/R2.14/bin/R /usr/bin/R2.14

用户可以启动两个版本的R(R和R2.14)。希望这有帮助!

答案 3 :(得分:0)

确实从源代码构建R非常容易(即使我可以做到!),只要您知道以下命令首先运行:

apt-get build-dep r-base

否则您可能会错过make的库类型错误。感谢Dirk过去发布过这个宝石。我在手册,自述文件或常见问题解答中没有看到它。

然后,它只是:

./configure
make

我想这可能是你的考虑因素:R是否使用静态或动态系统库?可能是一个自建的R链接到不同的库,而不是预先打包的二进制R? (我不知道)。你进入的程度取决于我猜你的应用程序的重要性以及哪些系统库对你至关重要。