我正在尝试准备一份提交给CRAN的软件包。在我的DESCRIPTION文件中,我在Depends和Suggests参数中包含了非CRAN包。要告诉R在哪里找到非CRAN包,我包含Additional_repositories参数;我在程序的顶部包含一个.onLoad函数(即在'zzz.R'中)。只要所有Depends和Suggests包都存在,我就可以在RStudio中构建和检查(--as-cran)零警告,注释或错误。然后我使用devtools :: build()在本地创建.tar.gz文件。
要测试本地安装是否成功,我从计算机中删除了非CRAN软件包,并尝试安装我创建的.tar.gz文件。然后我收到消息:
ERROR: dependency 'smwrQW' is not available for package 'baytrends'
我已经阅读了
不幸的是,上述错误仍在继续。我对我正在使用的URL充满信心,因为下面的install.package行在独立运行时可以正常工作
install.packages('smwrQW',repos=c("http://owi.usgs.gov/R"),dependencies = TRUE)
DESCRIPTION和zzz.R文件的适用位如下:
描述:
Date: 2017-03-15
Depends:
R (>= 3.2.0),
lubridate,
mgcv,
smwrQW
License: GPL-3
LazyData: TRUE
RoxygenNote: 6.0.1
Suggests:
dataRetrieval,
devtools,
fitdistrplus,
knitr,
nlme,
pander,
plyr,
rmarkdown,
smwrBase,
smwrGraphs,
smwrStats,
testthat
Additional_repositories: http://owi.usgs.gov/R
VignetteBuilder: knitr
zzz.R:
.onLoad <- function(libname = find.package("baytrends"), pkgname = "baytrends"){
repos = getOption("repos")
repos["USGS"] = "http://owi.usgs.gov/R"
options(repos = repos)
invisible(repos)
# declaration of global variables (https://stackoverflow.com/questions/9439256)
if(getRversion() >= "2.15.1")
utils::globalVariables(c("begin", "methodsList"))
invisible()
}
.onAttach <- function(libname = find.package("baytrends"), pkgname = "baytrends"){
packageStartupMessage("This software program is preliminary or provisional and is subject to revision. ")
}
答案 0 :(得分:3)
你可以在建议中使用它们
有几个包这样做;你可以看到的是hurricaneexposure,它使用它来制作一个过于庞大的CRAN&#39;数据包hurricanexposuredata可通过repository创建的drat获得。
所以你必须将smwrQR包移动到Suggests:然后测试它。
布鲁克和我有一份草案(正在审查中),如果你放弃我们,我们可以发送给你 - 它详细说明了所有这些,而不是简短的回答。