Travis CI 在使用 tikz 环境时无法为 bookdown 工作

Travis CI not working for bookdown when using tikz environement

bookdown 中添加 tikz 图片环境时,我的 Travis CI 构建停止工作。

这是错误。

Error in loadNamespace(name) : there is no package called 'magick'
Calls: <Anonymous> ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
The command "Rscript -e 'bookdown::render_book("index.Rmd")'" exited with 1.

我尝试将 magick 包添加到我的 DESCRIPTION 文件中,如下所示:

- Imports: 
    bookdown,
    magick

或者那样

- Remotes:
    ropensci/magick

我的构建仍然无法正常工作。

重现问题的最简单方法是克隆存储库 bookdown_travis。在 RStudio 中构建本书时,一切正常,但我在 Travis CI.

上收到一条错误消息

问题出在 07-tikz.Rmd 文件中。此文件包含一个应该可以正常工作的最小 tikz 示例。

在此先感谢您的帮助。

查看 the actual build logs 我们看到:

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because Magick++ was not found. Try installing:
 - deb: 'libmagick++-dev' (Debian, Ubuntu)
 - rpm: 'ImageMagick-c++-devel' (Fedora, CentOS, RHEL)
 - csw: 'imagemagick_dev' (Solaris)
On MacOS it is recommended to use install ImageMagick-6 from homebrew
with extra support for fontconfig and rsvg rendering:
   brew reinstall imagemagick@6 --with-fontconfig --with-librsvg
For older Ubuntu versions Trusty (14.04) and Xenial (16.04) use our PPA:
   sudo add-apt-repository -y ppa:opencpu/imagemagick
   sudo apt-get update
   sudo apt-get install -y libmagick++-dev
If Magick++ is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a Magick++.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
--------------------------------------------------------------------

由于 Travis CI 使用 Xenial,您应该使用

addons:
  apt:
    sources:
    - sourceline: 'ppa:opencpu/imagemagick'
    packages:
    - libmagick++-dev

.travis.yml 中。对于需要系统库的其他包,您可能必须重复此过程。

在@Ralf Stubner 的帮助下,这是我必须添加到我的 .travis.yml 文件以使其工作的代码:

addons:
  apt:
    sources:
    - sourceline: 'ppa:opencpu/imagemagick'
    - sourceline: 'ppa:opencpu/poppler'
    packages:
    - libmagick++-dev
    - libpoppler-cpp-dev