我正在 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 CI和 Packrat ,我都没有使用过。不知道他们是否会提供帮助。我更喜欢尽可能简单的修复。 (我们不是吗?)
我在 R Studio 版本 0.98.1103 中使用适用于 Windows 的 R 版本 3.1.3。
请您参考如下方法:
这个问题似乎最近已经得到解答,在 this issue 中得到解决。 devtools 的 github 存储库。
软件包开发者观点:
做:
usethis::use_package("jvamisc") devtools::document()
在描述文件的Imports
字段中添加依赖项。
在描述文件中手动添加一个字段“Remotes:”,指定 R 应在 github 上的何处查找包:
#in DESCRIPTION Imports: ..., jvamisc, ... Remotes: JVAdams/jvamisc
最终用户必须拥有最新开发版本的 devtools(或至少与提交 #f21ca3516c 对应的版本)。你必须以某种方式“强制他”更新他的开发工具版本(我想只是把它放在安装说明中......想不出更好的方法)
devtools::install_github(“hadley/devtools”, ref = “f21ca3516c”)
在卸载/重新加载 devtools 包时重新启动 R session 。
执行通常的
install_github
:require(devtools) devtools::install_github("user/LW1949")
最终用户观点:
我猜这个功能迟早会被添加到 CRAN 版本的 devtools 中,所以用户不需要获取 dev 版本,他会直接进入步骤 3)。
this vignette 中详细介绍了步骤和其他选项。 .