Проблема с установкой пакетов R с помощью devtools на Travis

#r #travis-ci #devtools

#r #travis-ci #devtools

Вопрос:

drake Недавно начались сбои в сборке Travis CI для :

 Downloading GitHub repo ropensci/drake@master
Error: Could not find tools necessary to compile a package
In addition: Warning message:
In get0(oNam, envir = ns) : internal error -3 in R_decompress1
Execution halted
The command "Rscript -e 'deps <- devtools::dev_package_deps(dependencies = NA);devtools::install_deps(dependencies = TRUE);if (!all(deps$package %in% installed.packages())) { message("missing: ", paste(setdiff(deps$package, installed.packages()), collapse=", ")); q(status = 1, save = "no")}'" failed and exited with 1 during .
  

Я пытался использовать версии для разработки devtools и pkgload и исправлены ошибки:

 $ Rscript -e 'deps <- devtools::dev_package_deps(dependencies = NA);devtools::install_deps(dependencies = TRUE);if (!all(deps$package %in% installed.packages())) { message("missing: ", paste(setdiff(deps$package, installed.packages()), collapse=", ")); q(status = 1, save = "no")}'
Error in match.arg(upgrade, c("ask", "always", "never")) : 
  'arg' must be of length 1
Calls: <Anonymous> ... upgradable_packages -> resolve_upgrade -> match.arg
Execution halted
The command "Rscript -e 'deps <- devtools::dev_package_deps(dependencies = NA);devtools::install_deps(dependencies = TRUE);if (!all(deps$package %in% installed.packages())) { message("missing: ", paste(setdiff(deps$package, installed.packages()), collapse=", ")); q(status = 1, save = "no")}'" failed and exited with 1 during .
  

И когда я также использовал версию для разработки remotes :

 $ Rscript -e 'deps <- devtools::dev_package_deps(dependencies = NA);devtools::install_deps(dependencies = TRUE);if (!all(deps$package %in% installed.packages())) { message("missing: ", paste(setdiff(deps$package, installed.packages()), collapse=", ")); q(status = 1, save = "no")}'
drake     (ae093a068... -> 7f40fc6be...) [GitHub]
lazyeval  (0.2.1        -> 0.2.2       ) [CRAN]
polyclip  (1.9-1        -> 1.10-0      ) [CRAN]
purrr     (0.3.1        -> 0.3.2       ) [CRAN]
readxl    (1.3.0        -> 1.3.1       ) [CRAN]
rmarkdown (1.11         -> 1.12        ) [CRAN]
stringi   (1.3.1        -> 1.4.3       ) [CRAN]
tibble    (2.0.1        -> 2.1.1       ) [CRAN]
tinytex   (0.10         -> 0.11        ) [CRAN]
Installing 8 packages: lazyeval, polyclip, purrr, readxl, rmarkdown, stringi, tibble, tinytex
Error in if (type == "binary") { : argument is of length zero
Calls: <Anonymous> ... with_rprofile_user -> with_envvar -> force -> force -> i.p
Execution halted
The command "Rscript -e 'deps <- devtools::dev_package_deps(dependencies = NA);devtools::install_deps(dependencies = TRUE);if (!all(deps$package %in% installed.packages())) { message("missing: ", paste(setdiff(deps$package, installed.packages()), collapse=", ")); q(status = 1, save = "no")}'" failed and exited with 1 during .
  

Я считаю, что сборки должны быть успешными, по крайней мере, до того момента, когда начнет выполняться фактическое руководство.

Комментарии:

1. Обновление: я очистил кэш, и исходная сборка прошла успешно. Не уверен, нужно ли повторно синхронизировать пакеты R, или это была какая-то другая проблема, которая со временем разрешилась сама по себе. Сборка с помощью development devtools по-прежнему завершается сбоем.

2. То же самое здесь: travis-ci.org/nachti/rwebhdfs/builds/517732797

3. Смотрите travis-ci.com/Exp-Micro-Ecol-Hub/emeScheme/builds/107620556 — та же проблема с другой версией R, но работает на macOS

4. Это не исправлено — см. travis-ci.com/Exp-Micro-Ecol-Hub/emeScheme

5. Пытался github.com/r-lib/devtools/issues/2020 , но безуспешно 🙁

Ответ №1:

remotes 2.0.3 (теперь на CRAN) исправьте это. Travis CI получает это оттуда.

Смотрите https://github.com/r-lib/devtools/issues/2020

Спасибо Джиму Хестеру!

Ответ №2:

Мне удалось решить это в devtools 2.0.2, передав upgrade аргумент самостоятельно: devtools::install_deps(dependencies = TRUE, upgrade="always")