r - 在共享服务器上运行 R 的包管理

标签 r rstudio package-management

一些背景知识:我是一个刚刚开始为我们部门维护服务器的系统管理员。该服务器包含多个 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/

相关文章:

naming-conventions - 在 conan 包名称中使用连字符有多糟糕?

node.js - 如何使用 nvm 正确升级 Node

tfs - Azure Artifacts 代码存储在本地解决方案中的什么位置?

r - 在 R 中用变音符号制表字符

r - 函数导致自动生成的 RcppExports.R 检查错误

r - 使用键盘输入中断循环 (R)

r - “finalfit”在处理连续因变量时丢失标签

R 从长到宽,有一对柱子

r - 未发布的包 : can't find un-exported function

rstudio - 禁用 RStudio 中的所有断点