読者です 読者をやめる 読者になる 読者になる

メモ:rgdalが必要なパッケージでTravis CIを使う

Ubuntuでrgdalパッケージを使うには、libgdal-devというパッケージが必要なんですが、Travis CIでこれをインストールしようとすると以下のようなエラーがでます。

https://travis-ci.org/yutannihilation/kokudosuuchi/jobs/172862797

The following packages have unmet dependencies:

 libgdal-dev : Depends: libhdf5-serial-dev

E: Unable to correct problems, you have held broken packages.

どうもTravis CIが使っているイメージ(Ubuntu 12.04)ではこの依存関係が壊れているらしく、インストールできません。

Ubuntu 14.04なら大丈夫なので、そっちを使うことにします。が、そうすると今度はlanguage: rを指定することができません。Rのセットアップから依存パッケージのインストールまで、全部自力でやらないといけません。

ということで、旧r-travisを眺めつつ作ったのが、

github.com

こちらの.travis.ymlです。

# R for travis: see documentation at https://docs.travis-ci.com/user/languages/r

language: c
matrix:
  include:
    - os: linux
      dist: trusty
      sudo: required
      before_install:
        - sudo add-apt-repository "deb https://cran.rstudio.com/bin/linux/ubuntu trusty/"
        - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
        - sudo add-apt-repository -y "ppa:marutter/rrutter"
        - sudo add-apt-repository -y "ppa:marutter/c2d4u"
        - sudo apt-get update -qq
        - sudo apt-get install -y --no-install-recommends r-base-dev
        - sudo apt-get install r-cran-httr r-cran-xml2 r-cran-purrr r-cran-dplyr r-cran-shiny r-cran-rgdal r-cran-digest r-cran-testthat
      script:
        - R CMD build ${R_BUILD_ARGS} .
        - FILE=$(ls -1t *.tar.gz | head -n 1)
        - _R_CHECK_CRAN_INCOMING_=FALSE R CMD check "${FILE}" --no-build-vignettes --no-manual --as-cran

before_scriptの一番最後は、依存パッケージを書きます。marutter/c2d4uというPPAがCRAN上のパッケージのdebパッケージ版を提供してくれているらしく、r-cran-をパッケージ名の前につければだいたいのパッケージはあるはずです。

matrixにしてるのは、今だと安定バージョンのRだけしかテストできてないんですが、開発版もビルドマトリクスしたいという気持ちからです。が、やり方がよくわからず...。どっかにバイナリ転がってないのかな。