gpt4 book ai didi

r - 如何确保同一服务器上不同用户之间的 R 环境一致?

转载 作者:行者123 更新时间:2023-12-04 21:47:13 30 4
gpt4 key购买 nike

我正在使用内部包“MyPKG”编写可重复分析的协议(protocol)。每个用户将提供自己的输入文件;除了输入之外,分析应该在相同的条件下运行。 (例如,以便我们可以推断不同的结果是由于不同的输入文件)。

MyPKG 正在开发中,所以 library(MyPKG)将加载用户在其本地库中编译的最后一个版本。它还将加载在其本地库中找到的任何依赖项。

但我希望每个人都使用特定版本 (MyPKG_3.14) 进行此分析,同时仍允许开发更新的版本。如果我理解正确,“R --vanilla”将为每个人加载相同的依赖项。

完成后,我们会将工作环境保存为 VM,以保持稳定的可重现环境。因此,临时(6 个月)的解决方案就足够了。

我提出了两种可能的解决方案,但不确定是否足够。

  • 请服务器管理员将 MyPKG_3.14 安装到默认的 R 路径中,然后在协议(protocol)中提供以下代码:
    R --vanilla
    library(MyPKG)
    ....

  • 在特定库中编译 MyPKG_3.14,例如lib.loc = "/home/share/lib/R/MyPKG_3.14",然后提供
    R --vanilla
    library(MyPKG)


  • 这两种方法是否足以确保每个人都运行相同的版本?
  • 一个比另一个更可取吗?
  • 是否还会出现其他不可预见的问题?
  • 是否有标准化多重分析的首选选项?
  • 我是否应该对 SessionInfo() 的输出进行测试? ?
  • 在服务器上创建一个帐户供所有人使用会更好吗?
  • 最佳答案

    几点:

  • 使用系统范围的软件包安装,例如R 的 Debian/Ubuntu 二进制文件(包括 CRAN 端口)将尝试使用 /usr/local/lib/R/site-library (如果添加到拥有该目录的组中,用户也可以安装)。这样每个人都能得到相同的版本
  • 使用系统范围的配置,例如更喜欢 $R_HOME/etc/~/ 下面的点文件上.出于同样的原因,Debian/Ubuntu 软件包在 /etc/R/ 中提供软链接(soft link)。
  • 使用 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:~$

    这是一个开始。

    关于r - 如何确保同一服务器上不同用户之间的 R 环境一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12519273/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com