0

我创建了一个自定义包,并希望将其部署到远程机器上。这是我目前的长期工作流程:

  • 创建自定义包'my_package_0.1.0.tar.gz'
  • scp 包到远程机器
  • 创建远程会话
  • install.packages("/path/to/my_package0.1.0.tar.gz")
  • library('my_package')

当其他人连接到机器时,他们必须运行安装和库:

  • install.packages("/path/to/my_package0.1.0.tar.gz")
  • library('my_package')

有没有办法可以共享自定义包并使工作流程为:

  • 创建远程会话
  • 加载包library('my_package')
4

1 回答 1

0

评论中的反馈说最佳做法是将软件包安装在共享位置。

这是您如何找到安装软件包的好地方的方法。

运行以下显示库的加载位置

.libPaths()
# rserve2 rserve2 /opt/deployr/9.0.1/rserve/R
#root root        /usr/lib64/microsoft-r/3.3/lib64/R/library

R 服务器在两个位置寻找库。一个是 root 拥有的,所以我们不应该在这里部署。另一个位置 rserve2 拥有所有权,看起来很有希望。我们应该创建一个library子文件夹来存储共享包。

基于这些信息,工作流程应该是:

  • 创建自定义包'my_package_0.1.0.tar.gz'
  • scp 包到远程机器
  • 创建远程会话
  • install.packages("/path/to/my_package0.1.0.tar.gz", lib='/opt/deployr/9.0.1/rserve/R/library/' )
  • 库(“我的包”)

当其他人连接到机器时,他们可以加载共享库:

  • 库(“我的包”)
于 2017-05-02T15:45:28.963 回答