在我们的服务器上,按照说明安装R 2.12.1 http://cran.r-project.org/bin/linux/debian/ ,使用 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,但是我的同事并不热衷于这个想法并促使我首先寻找另一个解决方案。我错过了任何信息,或者是否有人愿意向我展示完成这项工作的小技巧?如果从源头构建解决方案,我想知道任何陷阱或可能的问题。
正如我在评论中提到的,这是 理论上 可能就像一些软件包系列(Emacs,PostgreSQL,...)允许多个并发版本一样。
我们现在无法提供,因为我们使用 /usr/{share,lib}/R
哪些冲突。如果我这样做的话 /usr/{share,lib}/R-$version
然后使用 dpkg-alternatives
要翻到默认的首选,我们可能会这样做。问题在于过渡。少数用户使用此功能,获得它可能会导致大多数错误,直到这是稳定的。另外,我没有空余时间(但如果其他人想要这样做,请这样做)。
在此期间,你可以
可能使用的高级功能 dpkg
并解压缩到本地目录而不是下面的默认目录 /
- 所以 /opt/R/oldversions/2.12.1
应该是可能的。 R甚至可以运行,你需要重新定义 $RHOME
因此。
只需将本地变体构建到 /usr/local
如果你 真 必须
如果特定的CRAN /非CRAN软件包声称需要特定版本的R,请修复该死的软件包! ;-)
最后,这是一个主题 r-sig-debian
例如,CRAN维护者Michael和Johannes不会在这里阅读这个帖子。
您可以使用正确的编译标志安装不同版本的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脚本时:
./configure --prefix=/usr/local/R/2.14
等等。
我认为如果没有提供多个版本的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)。希望这可以帮助!
确实,从源代码构建R非常容易(即使我可以做到!),只要您知道以下命令首先运行:
apt-get build-dep r-base
否则你可能会丢失库类型错误 make
。感谢Dirk过去发布的那颗宝石。我在手册,自述文件或常见问题中没有看到。
然后,它只是:
./configure
make
我想这可能是你的考虑因素:R是否使用静态或动态系统库?可能是一个自建的R链接到不同的库,而不是预先打包的二进制R? (我不知道)。你进入多少取决于我猜你的应用程序的重要性以及哪些系统库对你至关重要。