一些背景:我是一个相当初级的系统管理员,为我们部门维护服务器。该服务器包含多个 VM,主要是 Ubuntu SE 12.04,通常每个项目都有一个单独的 VM。

我们使用的工具之一是 R 和 RStudio,也是服务器版。我已经设置了这个,所以每个人都可以通过他们的浏览器访问它,但我仍然想知道处理包管理的最佳方法是什么。理想情况下,我将有一个包含我们的“通用”包的文件夹/库,这些包在许多项目和用例中都很常见。我会管理这个库,因为我是 sudo 中的唯一用户。我的同事应该能够在他们的“个人”R 文件夹中逐案添加包,如果某个包在我们的主文件夹中不可用,则会将其作为备份进行检查。

我的问题有几个部分:
- 这实际上是一种可行的设置方式吗?
- 我将如何配置它?
- 有没有办法轻松自动化这个库,以便在其他 VM 中使用?

我有一个关于 Python 的类似问题,但也许我应该为此提出一个新问题。

最佳答案

默认情况下,R 支持包的多个库。库基本上只是放置已安装包的文件夹。
您可以使用

.libPaths()

在 R 中查看哪些路径用作系统上的库。在我的 Ubuntu 13.10 系统上,有
  • 位于“~/R/x86_64-pc-linux-gnu-library/3.0”的个人库,用户安装的软件包放置在其中,
  • "/usr/lib/R/library"放置通过 apt-get 安装的软件包和
  • "/usr/lib/R/site-library"这是一个系统范围的库,用于所有用户共享的包。

  • 您可以向 R 添加其他库,但根据我对您的问题的理解,将软件包安装到/usr/lib/R/site-library 可能是您正在寻找的。这可以通过以 root 身份运行 R 并像往常一样从那里调用 install.packages() 和 update.packages() 来相对容易地存档。但是,以 root 身份运行 R 存在安全风险,并不是一个好主意,因此创建一个对/usr/lib/R/site-library 具有写访问权限的单独用户并使用该用户而不是 root 可能更好。

    如果在多个 VM 上挂载/usr/lib/R/site-library,它们也应该共享安装在那里的软件包。这回答了你的问题了吗?

    关于r - 在共享服务器上运行 R 的包管理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21849767/

    10-12 18:57