Вот рабочий процесс non-devtools, который я следую за созданием и проверкой пакета. Обратите внимание, что проверки должны выполняться в tarball, а не в каталоге пакетов, поэтому вам нужно сначала создать. devtools делает это невидимо, но вы должны сделать это явным.
Предположим, что вы находитесь в каталоге, содержащем каталог пакетов (то есть на один уровень вверх от каталога пакета).
pkg <- "packagename"
version <- read.dcf(paste('.',pkg,'DESCRIPTION',sep='/'))[,'Version']
# build
system2("R", paste0("CMD build ", pkg), stdout = "build.txt", stderr = "build.txt")
# check
system2("R", paste0("CMD check ", pkg, "_", version, ".tar.gz --as-cran"), stdout = "check.txt", stderr = "check.txt")
# install
system2("R", paste0("CMD INSTALL -l ",Sys.getenv('R_HOME'),"/library ", pkg), stdout = "install.txt", stderr = "install.txt")
Это приведет к выгрузке вывода из каждой команды в собственный текстовый файл.
Вы также можете указать wait = FALSE
запускать их в отдельном процессе, не держа свой R. Это может быть полезно, если ваши чеки займет много времени, потому что вы можете приступить к другой работе внутри R.
Хедли также предположил, что если вы используете check()
вы можете получить доступ к файлу проверки, который генерируется автоматически R CMD check
, который будет располагаться здесь:
chk <- check()
# install log
file.path(chk, paste0(as.package(".")$package, ".Rcheck"), "00install.out")
# check log
file.path(chk, paste0(as.package(".")$package, ".Rcheck"), "00check.log")
Это может более не может быть более удобным.
Это та же проблема, что и здесь: https://github.com/hadley/devtools/issues/315. В принципе, devtools использует 'system', который не обеспечивает гибкий интерфейс для управления выходом, поэтому вам, вероятно, не повезло. Используйте вызов 'system2' для проверки R CMD, чтобы обойти это или вызвать функции контроля качества в инструментах напрямую. – Thomas
очень полезно - спасибо - любой шанс вы могли бы предложить синтаксис для вызова R CMD check через system2? доказывая, что он очень абстрактен для Google. 'system2 (« R », args = c (« CMD »,« check »,« что-то идет здесь? »))' – Andrew