Я пытаюсь подготовить пакет для отправки в CRAN. В моем файле DESCRIPTION я включаю пакеты, не относящиеся к CRAN, в аргументы «Зависит» и «Предлагает». Чтобы сообщить R, где найти пакеты, не относящиеся к CRAN, я включаю аргумент Additional_repositories; и я включаю функцию .onLoad в начало моей программы (то есть в 'zzz.R'). Я могу собрать и проверить (--as-cran) в RStudio без предупреждений, замечаний или ошибок, если присутствуют все пакеты Depends и Suggests. Затем я использую devtools :: build () для локального создания файла .tar.gz.
Чтобы проверить успешную локальную установку, я удаляю со своего компьютера пакеты, не относящиеся к CRAN, и пытаюсь установить созданный мной файл .tar.gz. Затем я получаю сообщение:
ERROR: dependency 'smwrQW' is not available for package 'baytrends'
Я прочитал
- зависимости пакета R не установлены из Additional_repositories
- Включить пакет без CRAN в пакет CRAN
- http://thecoatlessprofessor.com/programming/r-data-packages-in-external-data-repositories-using-the-additional_repositories-field/
- Как следует Я имею дело с предупреждением о том, что пакет 'xxx' недоступен (для версии R xyz)?
К сожалению, вышеупомянутая ошибка сохраняется. Я уверен в 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. ")
}