Как правильно настроить type = "both" в AppVeyor, чтобы не требовать ввода данных пользователем?
Поскольку пакет (перо) для R 3.5.0 доступен только из исходного кода, мои текущие сборки AppVeyor терпят неудачу.
Я определил, что с помощью PKGTYPE: source
исправит сборку, однако это займет примерно 5 раз, так как он собирает все пакеты из исходного кода, тогда как в действительности ему нужно собрать только один пакет из исходного кода. PKGTYPE: both
приводит к сбою сборок.
В RStudio, install.packages(c("feather", "tidyr"), type = "both"))
установит tidyr из двоичного файла и перо из исходного кода, и это поведение я хочу воспроизвести на AppVeyor. Однако он требует ввода данных пользователем в виде всплывающего окна, спрашивающего пользователя, следует ли ему пытаться выполнить установку из исходного кода. Я предполагаю, что это требование пользовательского интерфейса, поэтому с помощью PKGTYPE: both
выходит из строя.
Есть ли способ не требовать пользовательского ввода для установки пакетов из источника, когда type = "both"
?
1 ответ
Вы не можете требовать ввода пользователя от install.packages(..., type = "both")
установив install.packages.compile.from.source
возможность "always"
, Смотрите: Как не нужно вводить данные пользователя для install.packages(type = "both")
Однако в настоящее время R-AppVeyor использует remotes::install_deps()
, который в соответствии с man-страницами автоматически переключается "both"
в "binary"
так что вышеупомянутый вариант является спорным, и PKGTYPE: both
кажется, работает так же, как PKGTYPE: binary
для AppVeyor Ямл.
Итак, вместо использования PKGTYPE: both
или сборка всех пакетов, если вы знаете, какой пакет нужно собрать, вы можете сделать это, добавив вызов Rscript в yaml AppVeyor. Я добавил следующее в appveyor.yml для создания пера из исходного кода, прежде чем дополнительные пакеты загружаются при вызове install_deps
:
build_script:
- Rscript -e install.packages('feather',type='source',repos='https://cran.rstudio.com')
- travis-tool.sh install_deps
Обратите внимание, вторая пуля уже существовала