未从 Additional_repositories 安装的 R 包依赖项(重新访问)

gre*_*s62 0 submission r cran

我正在尝试准备一个要提交给 CRAN 的包。在我的描述文件中,我在 Depends 和 Suggests 参数中包含了非 CRAN 包。为了告诉 R 在哪里可以找到非 CRAN 包,我包含了 Additional_repositories 参数;并且我在程序的顶部(即在“zzz.R”中)包含了一个 .onLoad 函数。只要所有 Depends 和 Suggests 包都存在,我就能够在 RStudio 中构建和检查 (--as-cran) 零警告、注释或错误。然后我使用 devtools::build() 在本地创建一个 .tar.gz 文件。

为了测试本地安装是否成功,我从我的计算机中删除了非 CRAN 包并尝试安装我创建的 .tar.gz 文件。然后我收到消息:

ERROR: dependency 'smwrQW' is not available for package 'baytrends' 
Run Code Online (Sandbox Code Playgroud)

我已经阅读了

不幸的是,上述错误仍在继续。我对我使用的 url 充满信心,因为下面的 install.package 行在独立运行时有效

install.packages('smwrQW',repos=c("http://owi.usgs.gov/R"),dependencies = TRUE)
Run Code Online (Sandbox Code Playgroud)

描述和 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
Run Code Online (Sandbox Code Playgroud)

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 (/sf/ask/660747951/)
  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. ")
}
Run Code Online (Sandbox Code Playgroud)

Dir*_*tel 5

不能在 Depends: 或 Imports: 中拥有来自非标准存储库的包。

可以在建议中使用它们:

有几个软件包可以做到这一点;您可以查看一个hurricaneexposure,它使用它从通过drat创建的存储库中制作一个“对CRAN来说太大”的数据包hurricanexposuredata

因此,您必须将 smwrQR 包移动到 Suggests: 然后对其进行测试。

Brooke 和我有一份关于此的草稿(正在审查),如果您联系我们,我们可以将其发送给您——它比简短的回答更详细地说明了所有这些。