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