将 Travis 与 R 和 rJava 结合使用

Using Travis with R and rJava

我有一个依赖于 rJava 的 R 包。我正在使用 R 对 travis

的支持
language: r

sudo: required

warnings_are_errors: true

r_github_packages:
 - keboola/redshift-r-client

但失败并出现错误:

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/local/lib/R/site-library/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory

完整日志:https://travis-ci.org/keboola/provisioning-r-client/builds/61021633

我尝试添加:

apt_packages:
 - openjdk-7-jre

jdk:
- oraclejdk8

不过none好像没什么效果。

解决方案 1:

language: r

sudo: required

apt_packages:
 - r-cran-rjava

解决方案 2:

language: r

sudo: required

apt_packages:
 - openjdk-7-jre

before_install:
 - export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
 - export PATH=$PATH:$JAVA_HOME/bin
 - export LD_LIBRARY_PATH=/usr/lib/jvm/java-8-oracle/lib/amd64:/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server
 - sudo R CMD javareconf 

请尝试直接通过 apt-get 安装 r-cran-rjava

这里有许多与 r-cran-rjava 相关的问题,因此浏览一下这些问题也可能有所帮助。此软件包的 Build-Depends 当前为 default-jdkDependsopenjdk-7-jre | default-jre 上。依靠软件包应该可以帮助你。

FWIW 我仍然使用以前的 Travis 设置,因为我发现它加载速度更快。