我们有一个小型的 Linux 机器集群(约 15 台),最多有 20 个用户。过去几年,我们编写了一些基本的 R 脚本,用于进行基本的统计分析。作为一名新手系统管理员,我遇到的问题是包管理。目前,如果有人编写了一个需要新包的新脚本,则需要在所有机器上为所有用户安装此包。这似乎是一种原始人的策略(我们也对 python 和 perl 模块这样做)。我目前正在将我们的操作系统从 rhel5 升级到 CentOS6,并希望一切顺利。
这是我最初的想法?
在第一台机器margay
(运行 CentOs6) 上的 R 中.libPaths()
指向“/usr/lib64/R/library”和“/usr/share/R/library”
我计划.Rprofile
为所有用户创建一个包含该行的默认值.libPaths("/usr/share/R/library" )
。我认为这将默认将软件包安装到上述目录中。
目前对 的写入权限为usr/share/R/library/
。drwxr-xr-x
第一个问题是我应该让所有用户都写入此目录还是以 root 用户身份安装 R 包?
在我将安装 CentOS6 的后续机器上,我当时正在考虑使用 nfs 在所有其他系统上自动挂载 /usr/share/R/ 以指向 margay:/usr/share/R/。因此,我更新了机器 2 上的操作系统 ( lynx
) 并安装了 R。如何自动挂载 /usr/share/R/lynx
以指向 上的等效目录margay
。
这看起来是个合理的解决方案吗?如果我在 上安装一个新包margay
,我是否能够自动运行其他机器上使用此包的任何 R 脚本?有什么缺陷?所有机器上都需要相同版本的 R 吗
我是否应该在所有其他 CentOS6 机器上安装 /usr/share/R/library 以指向 /usr/share/R/library。然后,如果我在 margay 上以 root 身份安装新软件包,则所有其他机器都应该看到这个新软件包?如果这样做合理,我该怎么做