我在GitHub上创建一个R包LW1949,它取决于GitHub上的另一个R包,jvamisc。当我尝试使用
安装LW1949时require(devtools)
devtools::install_github("user/LW1949")
我收到了消息:Skipping 1 packages not available: jvamisc
。
如何将LW1949包的import(jvamisc)
部分(在NAMESPACE中)指向Github而不是CRAN以找到这种依赖?
以前这个问题肯定已经被问过并回答了,但是我没有成功地搜索它(也许是因为搜索条件如此常见--R,包,GitHub等)。我偶然发现Travis CI和Packrat,我都没用过。不知道他们是否会有所帮助。我希望尽可能简单的修复。 (我们不是都会吗?)
我在R Studio版本0.98.1103中使用R版本3.1.3 for Windows。
答案 0 :(得分:28)
这个问题似乎最近得到了回答,在devtools的github存储库的this issue中得到解决。
套餐开发商POV:
1)做:
devtools::use_package("jvamisc")
devtools::document()
在DESCRIPTION文件的Imports
字段中添加依赖项。
2)在DESCRIPTION文件中手动添加一个字段“Remotes:”,指定github R在该软件包中的位置:
#in DESCRIPTION
Imports: ...,
jvamisc,
...
Remotes: JVAdams/jvamisc
最终用户POV:
1)最终用户必须拥有devtools的最新开发版本(或至少与commit#f21ca3516c相对应的版本)。你必须以某种方式'迫使他'更新他的devtools版本(我想只是把它放在安装说明中......想不出更好的方法)
devtools::install_github(“hadley/devtools”, ref = “f21ca3516c”)
2)在卸载/重新加载devtools包时重新启动R Session
3)执行通常的install_github
require(devtools)
devtools::install_github("user/LW1949")
我想这个功能迟早会添加到devtools的CRAN版本中,因此用户无需获取开发版本,他将直接进入步骤3)。
答案 1 :(得分:16)
实际的解决方案似乎在您的DESCRIPTION文件中添加了一行
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