1. AI新视界首页
  2. AI经验分享
  3. 框架平台

完美配置Linux/UBuntu中依赖于rjava或者Openbabel的软件环境

在安装ChemmineOB等依赖rjava的软件时候需要先配置java环境。同时ChemmineOB还依赖于Openbabel。笔者在这里为大家记录如何配置这类环境。因为这类环境实在是很折腾人。依赖于底层软件的包安装起来就是这么费劲。

在安装ChemmineOB等依赖rjava的软件时候需要先配置java环境。同时ChemmineOB还依赖于Openbabel。笔者在这里为大家记录如何配置这类环境。因为这类环境实在是很折腾人。依赖于底层软件的包安装起来就是这么费劲。

第一步:ubuntu(14.04)中更新源之后升级r-base。之后可以选择安装rstudio。

第二步:配置rjava。首先配置ubuntu的java环境:

打开终端,使用下面的命令:

  1. java version

如果你看到像下面的输出,这就意味着你并没有安装过Java:

  1. The program java can be found in the following packages:
  2. *defaultjre
  3. * gcj4.6jreheadless
  4. * openjdk6jreheadless
  5. * gcj4.5jreheadless
  6. * openjdk7jreheadless
  7. Try: sudo aptget install

根据需要选择安装。这里笔者安装过程如下:

  1. sudo addaptrepository ppa:webupd8team/java
  2. sudo aptget update
  3. sudo aptget install oraclejava8installer
  4. sudo aptget install oraclejava8setdefault

第三步:确认java环境:

在启动终端并输入

  1. gedit /etc/profile

在末尾添加一下配置,保存并退出

  1. #set jdk environment
  2. export JAVA_HOME=/usr/lib/jvm/java-8-oracle
  3. export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
  4. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

终端输入一下命令使配置生效

  1. source /etc/profile

最好在.bashrc里面也给出相同的配置。

第四步:安装rjava:

报错:

conftest.c:1:17: fatal error: jni.h: No such file or directory

compilation terminated.

make: *** [conftest.o] Error 1

Unable to compile a JNI program

checking Java support in R… present:
interpreter : ‘/usr/lib/jvm/jdk1.7.0_25/jre/bin/java’
archiver    : ‘/usr/lib/jvm/jdk1.7.0_25/bin/jar’
compiler    : ‘/usr/lib/jvm/jdk1.7.0_25/bin/javac’
header prep.: ‘/usr/lib/jvm/jdk1.7.0_25/bin/javah’
cpp flags   : ”
java libs   : ”
configure: error: One or more Java configuration variables are not set.
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.

If you don’t have root privileges, run
R CMD javareconf -e
to set all Java-related variables and then install rJava.

发现虽然经过source。但是java环境并没有通过R CMD javaeconf的配置。这时候应该重启电脑。

重启后正确的结果应该是输入R CMD javareconf 得到:

Java interpreter : /usr/lib/jvm/java-8-oracle/jre/bin/java
Java version     : 1.8.0_121
Java home path   : /usr/lib/jvm/java-8-oracle
Java compiler    : /usr/lib/jvm/java-8-oracle/bin/javac
Java headers gen.: /usr/lib/jvm/java-8-oracle/bin/javah
Java archive tool: /usr/lib/jvm/java-8-oracle/bin/jar

JAVA_HOME        : /usr/lib/jvm/java-8-oracle
Java library path: $(JAVA_HOME)/jre/lib/amd64/server
JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
JNI linker flags : -L$(JAVA_HOME)/jre/lib/amd64/server -ljvm
Updating Java configuration in /usr/lib/R
Done.

红色部分通过了就表示你rjava环境配置好了。这时候可以直接通过rstudio的命令:

install.packages(‘rjava’)来安装rjava了。

第五步:安装openbabel。

这个openbabel提供了软件本身,gui版本,还有各类语言的扩展,比如python-openbabel。笔者在这里吃亏很严重。因为直接安装ChemmineOB等依赖openbabel的包是不可能行的。除非特殊情况的版本合适,配置默认。直接安装会提示找不到openbabel/generic.h的头文件。

首先我们尝试在软件中心安装openbabel软件本身。发现仍不能安装ChemmineOB。在ChemmineOB的官网description里面找到一些提示。其针对win和linux都有提示。

Compling with OpenBabel in a non-standard location
—————————————————
If the OpenBabel include and/or library files are not in one of the default
search paths (e.g., /usr/lib,/usr/include, /usr/local/lib,/usr/local/include), then you must set the
following environment variables before installing the ChemmineOB package:

OPEN_BABEL_INCDIR = path to header files
OPEN_BABEL_LIBDIR = path to shared (.so) library file

These values can also be set through command line switches to the configure scripts:

R CMD INSTALL –configure-args=’–with-openbabel-include=… –with-openbabel-lib=…’ ChemmineOB.tgz

where the ‘…’ are replaced by the relevant paths.

因此尝试根据提示重新更改configure参数来安装。发现仍然失败,原因在于lib文件.so文件可以找到。但是with-openbabel-include还是不对。

这里的关键在于这个头文件是存在于dev包里面的。所以。。笔者建议安装synaptic package manager。在里面输入babel。找到libopenbabel-dev然后安装然后最终成功。

最终安装命令:

install.packages(“~/Downloads/ChemmineOB_1.12.0.tar.gz”, configure.args = c(“–with-openbabel-include=/usr/include/openbabel-2.0”, “–with-openbabel-lib=/usr/lib/libopenbabel.so”), repos = NULL, type = “source”)

特别注意openbabel-2.0里面还有一层目录。这里多写一层也会出错。汗。。

 

 

 

请使用手机”扫一扫”x

原创文章,作者:ifyoung,如若转载,请注明出处:https://www.drugfoodai.com/ubuntu-rjava.html

注意:本站原创指的是原创编译,并不主张对所介绍的工作的版权,如有侵权,请联系删除!

发表评论

邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

  • 诺青
    诺青 2017年3月14日 下午9:26

    你好,有个关于PHP网站的问题需要咨询你,麻烦添加下我381829616