首页 文章

Travis-CI:在loadVignetteBuilder中找不到Knitr

提问于
浏览
4

到目前为止我一直在成功使用travis-ci,但是在使用带有R 3.4.0的travis-ci时,在“构建包”部分中出现以下错误时遇到了麻烦:

* installing the package to build vignettes
* creating vignettes ... ERROR
Error in loadVignetteBuilder(vigns$pkgdir) : 
  vignette builder 'knitr' not found
Calls: <Anonymous> -> loadVignetteBuilder
Execution halted

当我在本地运行R-CMD-check时它会通过,我不会收到任何错误

这是当前的.travis.yml

language: R
sudo: false
install:
  - R -e "0" --args --bootstrap-packrat
cache:
  directories:
    - $TRAVIS_BUILD_DIR/packrat/src
    - $TRAVIS_BUILD_DIR/packrat/lib
  packages: true

r_packages:
    - covr

after_success:
    - Rscript -e 'library(covr); codecov()'

DESCRIPTION中有一个插图线:

VignetteBuilder: knitr

knitr也在我的packrat.lock文件中,packrat用于构建.travis.yml .

我试过以下无济于事:

  • 为.travis.yml中的r_packages添加了knitr

  • 为DESCRIPTION中的Imports添加了knitr

  • r_check_args: "--no-vignettes" 添加到了travis.yml,希望能够跳过小插图构建步骤 .

  • 在travis.yml中添加了从 installbefore_install 的packrat调用

我非常清楚构建R软件包,不介意travis-ci所以我不确定我是否理解为什么vignette构建器无法访问knitr包 .

回购:https://github.com/cormac85/datakindr
特拉维斯:https://travis-ci.org/cormac85/datakindr

2 回答

  • 3

    一个潜在的问题涉及description file中的'Imports'和/或'Suggests'部分 .

    dplyr需要在您的建议中,如果不是进口 .

    参见Hadley 's 2015 O' Reilly book,R Packages

    常见问题:插图以交互方式构建,但在检查时,它会因为您知道已安装的缺少包的错误而失败 . 这意味着您忘记在DESCRIPTION中声明该依赖项(通常应该在Suggests中) .

  • 0

    所以最后我通过从.travis.yml中删除packrat配置并将其替换为正常的包构建配置: cache: packages 来获得构建 .

    我使用的packrat配置是在Travis R Documentation中建议的,并且适用于包中的其他项目,但在构建期间它不适用于 loadVignetteBuilder() 步骤 .

相关问题