如何确保同一服务器上不同用户之间的R环境一致?
我正在编写一份使用内部软件包“MyPKG”进行可重复分析的方案。每个用户将提供自己的输入文件;除输入外,分析应在相同条件下进行。(例如,我们可以推断不同的结果是由不同的输入文件造成的) MyPKG正在开发中,因此如何确保同一服务器上不同用户之间的R环境一致?,r,environment,R,Environment,我正在编写一份使用内部软件包“MyPKG”进行可重复分析的方案。每个用户将提供自己的输入文件;除输入外,分析应在相同条件下进行。(例如,我们可以推断不同的结果是由不同的输入文件造成的) MyPKG正在开发中,因此library(MyPKG)将加载用户在其本地库中编译的最后一个版本。它还将加载在其本地库中找到的任何依赖项 但我希望每个人都使用一个特定的版本(MyPKG_3.14)进行分析,同时仍然允许开发更新的版本。如果我理解正确,“R--vanilla”将为每个人加载相同的依赖项 完成后,我们将
library(MyPKG)
将加载用户在其本地库中编译的最后一个版本。它还将加载在其本地库中找到的任何依赖项
但我希望每个人都使用一个特定的版本(MyPKG_3.14)进行分析,同时仍然允许开发更新的版本。如果我理解正确,“R--vanilla”将为每个人加载相同的依赖项
完成后,我们将把工作环境保存为VM,以保持稳定的可复制环境。因此,临时(6个月)解决方案就足够了
我已经提出了两个可能的解决方案,但不确定其中一个是否足够
R --vanilla
library(MyPKG)
....
或R --vanilla
library(MyPKG)
- 这两种方法是否足以确保每个人都运行相同的版本
- 一个比另一个好吗
- 是否有其他未预见的问题可能出现
- 是否有一个标准化多重分析的首选方案
- 我应该包括对
输出的测试吗SessionInfo()
- 在服务器上创建一个供所有人使用的帐户是否更好李>
- 使用系统范围的软件包安装,例如Debian/Ubuntu二进制软件包R(包括CRAN端口)将尝试使用
(如果添加到拥有目录的组中,用户也可以安装)。这样每个人都会得到相同的版本/usr/local/lib/R/site library
- 使用系统范围的配置,例如,与下面的点文件相比,更喜欢
。出于同样的原因,Debian/Ubuntu软件包在$R\u HOME/etc/
/etc/R/
- 使用R的工具查询其包(例如
)以报告包和版本installed.packages()
- 在可用的情况下,使用操作系统级工具查询操作系统版本和版本。然而,这是不太标准化的李>
> edd@max:~$ lsb_release -a | tail -4
> Distributor ID: Ubuntu
> Description: Ubuntu 12.04.1 LTS
> Release: 12.04
> Codename: precise
> edd@max:~$
这是一个开始。好问题。我在这个问题上的工作是作为一个更大项目的一部分,并计划发布一个库,该库将在任何执行后生成出处跟踪。比较两条记录道很容易,看看差异是新数据还是新库,如果出现不同的结果,其中一条记录道可以根据需要进行更改。有关详细信息,请发电子邮件给我。@Maiasaura我没有看到你的电子邮件。它是从kram开始的吗?向所有用户推出一个标准的
.Rprofile.site
文件,其中包括一行类似install.packages('mypathto/MyPKG_3.14')的代码就足够了吗;库(MyPKG_3.14)
?@CarlWitthoft,因为R在安装程序包时读取Rprofile,该程序包告诉R安装一个程序包,该程序包使其读取Rprofile…+1您最近给我的非常有用的建议是删除“~/R/x86_64-pc-linux-gnu-library/2.15”