如何安装和管理多个版本的R软件包
我正在开发一个用R进行可复制计算的框架。我正在努力解决的一个问题是,一些R代码可能在软件包的X.Y-Z版本中运行得很好,但是为什么3年后你要尝试复制它呢?软件包已经更新了,一些函数已经更改了,代码不再运行了。例如,此问题也会影响使用包的Swave文档 自信地再现结果的唯一方法是安装R版本和原始作者使用的软件包版本。如果这是一个单一的案例,人们可以从CRAN档案中提取资料并安装适当的版本。但对于我的框架来说,这是不切实际的,我需要预先安装软件包版本 现在假设我只使用R的一个版本,例如2.14。安装多个版本的R软件包的实用方法是什么,以便我可以动态加载它们?我想我可以为每个包的每个版本创建单独的库目录,然后在加载时使用自定义lib.loc参数。不过这会很混乱。有没有任何提示或以前尝试过做类似的事情如何安装和管理多个版本的R软件包,r,ubuntu,cran,R,Ubuntu,Cran,我正在开发一个用R进行可复制计算的框架。我正在努力解决的一个问题是,一些R代码可能在软件包的X.Y-Z版本中运行得很好,但是为什么3年后你要尝试复制它呢?软件包已经更新了,一些函数已经更改了,代码不再运行了。例如,此问题也会影响使用包的Swave文档 自信地再现结果的唯一方法是安装R版本和原始作者使用的软件包版本。如果这是一个单一的案例,人们可以从CRAN档案中提取资料并安装适当的版本。但对于我的框架来说,这是不切实际的,我需要预先安装软件包版本 现在假设我只使用R的一个版本,例如2.14。安装
我的框架运行在Ubuntu服务器上。您可以安装版本为的软件包(例如,重命名为
foo_1.0
目录,而不是foo
),并将要重新创建给定R+软件包快照的版本软链接到一个库中。显然,这些包实际上可以存在于一个单独的树中,因此您可以拥有library.projectX/foo
->library.all/foo/1.0
我会尝试修改描述文件,并通过添加版本号来更改“Package”字段
例如,您可以从CRAN页面下载包源代码(http://cran.r-project.org/web/packages/pls/). 将压缩文件(pls_2.3-0.zip)解压缩到目录(“pls/”)中。以下步骤是更改描述(“pls/DESCRIPTION”)中的程序包名称,并使用R命令“R CMD INSTALL pls/”进行安装,其中“pls/”是指向已修改描述文件的程序包源的路径
对我来说,使用R库路径似乎是一件危险的事情。操作系统为您提供了更多完全分离的句柄,而Debian/Ubuntu堆栈则是众多可用的句柄。我玩过的两个是
- chroot环境:我们使用它来完成独立于主机的构建环境。例如,我制作的所有Debian上传都是在我的amd64 Ubuntu服务器上托管的i386 pbuilder chroot中构建的。Chroot是一个非常强大的Unix系统调用。Chroots,尤其是构建在其之上的pbuilder系统(用于Debian软件包构建)旨在实现无头操作
- 虚拟机:这提供了完整的通用性。我的功能不太强大的box可以轻松处理三台虚拟机:Debian i386、Ubuntu i386以及Windoze XP。为此,我目前使用KVM和libvirt;这是Linux特有的。我过去也使用过VirtualBox和VMware