【问题标题】:Reload Custom R Package from Source从源重新加载自定义 R 包
【发布时间】:2017-09-29 08:33:30
【问题描述】:

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

  • 创建自定义包“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')加载包

【问题讨论】:

  • 您没有远程机器的管理权限?在这种情况下,您可以在系统范围内安装软件包。
  • 这也可能会有所帮助:stackoverflow.com/questions/3487329/…
  • 另一种方法可能是将您的包保存为脚本,然后在线上传,例如,到 github。这样,用户可以简单地从 github 获取您的脚本,并且它始终是最新的。
  • 看起来远程连接将文件存储在 /opt/deployr/9.0.1/rserve/workdir/Rserv8.0.5/connXXX 之类的位置。共享文件在哪里更合适?

标签: r microsoft-r deployr


【解决方案1】:

cmets 中的反馈表明,最佳做法是将软件包安装在共享位置。

您可以通过以下方法找到安装软件包的好地方。

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

.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/')
  • 库('my_package')

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

  • 库('my_package')

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多