因为R 3.5.0的包(羽毛)只能从源代码获得,所以我当前的AppVeyor版本都失败了。
我已经确定使用PKGTYPE: source
将修复构建,但是它需要大约5倍,因为它从源代码构建所有软件包,而实际上它只需要从源构建一个软件包。 PKGTYPE: both
导致构建失败。
在RStudio中,install.packages(c("feather", "tidyr"), type = "both"))
将从源代码中安装二进制和羽毛的tidyr,这是我想在AppVeyor上复制的行为。但是,它需要用弹出窗口形式的用户输入,询问用户是否应该尝试从源安装。我假设这个UI要求是使用PKGTYPE: both
失败的原因。
在type = "both"
时,有没有办法不要求用户输入来源?
答案 0 :(得分:0)
通过将install.packages(..., type = "both")
选项设置为install.packages.compile.from.source
,您可以不需要来自"always"
的用户输入。参见:How to not need user input for install.packages(type = "both")
但是,当前,R-AppVeyor使用remotes::install_deps()
,根据手册页,它会自动将"both"
切换为"binary"
,因此上面的选项没有意义,而PKGTYPE: both
AppVeyor yaml的工作方式似乎与PKGTYPE: binary
相同。
因此,如果您知道需要构建哪个软件包,则可以通过在AppVeyor yaml中添加对Rscript的调用来代替使用PKGTYPE: both
或构建所有软件包。我在appveyor.yml中添加了以下内容,以便从源代码构建羽毛,然后再通过调用install_deps
加载其他软件包:
build_script:
- Rscript -e install.packages('feather',type='source',repos='https://cran.rstudio.com')
- travis-tool.sh install_deps
注意,第二个项目符号已经存在