Skip to main content
 首页 » 编程设计

r之创建一个依赖于 GitHub 上另一个 R 包的 R 包

2024年06月20日9arxive

我正在 GitHub 上创建一个 R 包,LW1949 ,这取决于 GitHub 上的另一个 R 包,jvamisc 。当我尝试使用安装 LW1949 时

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

我收到消息:正在跳过 1 个不可用的软件包:jvamisc

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

当然这个问题之前已经被问过并回答过,但我没有成功搜索它(可能是因为搜索词太常见 - R、package、GitHub 等)。我确实偶然发现了Travis CIPackrat ,我都没有使用过。不知道他们是否会提供帮助。我更喜欢尽可能简单的修复。 (我们不是吗?)

我在 R Studio 版本 0.98.1103 中使用适用于 Windows 的 R 版本 3.1.3。

请您参考如下方法:

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


软件包开发者观点:

  1. 做:

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

在描述文件的Imports 字段中添加依赖项。

  • 在描述文件中手动添加一个字段“Remotes:”,指定 R 应在 github 上的何处查找包:

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

  • 最终用户观点:

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

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

    3. 执行通常的install_github:

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

    我猜这个功能迟早会被添加到 CRAN 版本的 devtools 中,所以用户不需要获取 dev 版本,他会直接进入步骤 3)。


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