【问题标题】:Create an R package that depends on another R package located on GitHub创建一个依赖于位于 GitHub 上的另一个 R 包的 R 包
【发布时间】:2015-08-10 04:24:47
【问题描述】:

我正在 GitHub 上创建一个 R 包,LW1949,它依赖于 GitHub 上的另一个 R 包,jvamisc。当我尝试使用

安装 LW1949
require(devtools)
devtools::install_github("user/LW1949")

我收到消息:Skipping 1 packages not available: jvamisc

如何将 LW1949 包(在 NAMESPACE 中)的 import(jvamisc) 部分指向 Github 而不是 CRAN 以查找此依赖项?

这个问题之前肯定有人问过和回答过,但是我没有成功搜索(可能是因为搜索词太常见了——R、package、GitHub等)。我确实偶然发现了Travis CIPackrat,我都没有使用过。不知道他们是否会提供帮助。我希望尽可能简单的修复。 (我们都不会吗?

我在 R Studio 版本 0.98.1103 中使用 R 版本 3.1.3 for Windows。

【问题讨论】:

  • 类似的问题刚刚在 r-pkg-devel 上提出。如果您在 github 上创建一个 drat 存储库,您显然可以在您的 DESCRIPTION 文件的 Additional_repositories 字段中指定它。
  • 嗨,让。很高兴在 SO 上见到你。当存在相互依赖的 CRAN 和 BioC 包的混合时,还需要附加设施选项,但现在您可以在选项中指定 repos 的搜索列表:options("repos") 另请参阅?setRepositories
  • 您可能希望分叉项目并链接到您的包中的项目...以防原始用户以破坏您的包的方式删除/更改它。
  • 您可以查看drat 包,它使创建存储库和从存储库安装都很容易。
  • @NealFultz 这似乎仅用于R CMD check 目的,请参阅r-ext。我已经尝试为 gh package on drat 设置它,导入另一个 gh package on drat 和其他一些在 CRAN 上。它没有使用Additional_repositories 元数据,而是抛出dependencies not available 错误。

标签: r github package


【解决方案1】:

这个问题似乎最近才得到解答,在 devtools 的 github 存储库的 this issue 中得到解决。


包开发者 POV:

  1. 做:

    usethis::use_package("jvamisc")
    devtools::document()
    

在您的DESCRIPTION文件的Imports字段中添加依赖项。

  1. 在DESCRIPTION文件中手动添加一个字段“Remotes:”,指定在github上R应该在哪里寻找包:

    #in DESCRIPTION
    Imports: ...,
      jvamisc,
      ...
    Remotes: JVAdams/jvamisc
    

最终用户 POV:

  1. 最终用户必须拥有最新的 devtools 开发版本(或至少与提交 #f21ca3516c 对应的版本)。你必须以某种方式“强迫他”更新他的 devtools 版本(我想只是把它放在安装说明中......想不出更好的方法)

    devtools::install_github(“hadley/devtools”, ref = “f21ca3516c”)
    
  2. 在卸载/重新加载 devtools 包时重新启动 R 会话。

  3. 照常做install_github:

    require(devtools)
    devtools::install_github("user/LW1949")
    

我猜这个功能迟早会添加到 devtools 的 CRAN 版本中,因此用户无需获取 dev 版本,他会直接进入第 3 步)。


this vignette 中详细介绍了步骤和其他选项。

【讨论】:

    【解决方案2】:

    实际的解决方案似乎是在您的说明文件中添加该行

    Remotes: hadley/testthat
    

    查看 devtools 的文档:

    # Git
    Remotes: git::https://github.com/hadley/ggplot2.git
    
    # Bitbucket
    Remotes: bitbucket::sulab/mygene.r@default, dannavarro/lsr-package
    
    # Bioconductor
    Remotes: bioc::3.3/SummarizedExperiment#117513, bioc::release/Biobase
    
    # SVN
    Remotes: svn::https://github.com/hadley/stringr
    
    # URL
    Remotes: url::https://github.com/hadley/stringr/archive/master.zip
    
    # Local
    Remotes: local::/pkgs/testthat
    
    # Gitorious
    Remotes: gitorious::r-mpc-package/r-mpc-package
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-12
      • 2019-08-05
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多