在安装ChemmineOB等依赖rjava的软件时候需要先配置java环境。同时ChemmineOB还依赖于Openbabel。笔者在这里为大家记录如何配置这类环境。因为这类环境实在是很折腾人。依赖于底层软件的包安装起来就是这么费劲。
在安装ChemmineOB等依赖rjava的软件时候需要先配置java环境。同时ChemmineOB还依赖于Openbabel。笔者在这里为大家记录如何配置这类环境。因为这类环境实在是很折腾人。依赖于底层软件的包安装起来就是这么费劲。
第一步:ubuntu(14.04)中更新源之后升级r-base。之后可以选择安装rstudio。
第二步:配置rjava。首先配置ubuntu的java环境:
打开终端,使用下面的命令:
- java –version
如果你看到像下面的输出,这就意味着你并没有安装过Java:
- The program ‘java’ can be found in the following packages:
- *default–jre
- * gcj–4.6–jre–headless
- * openjdk–6–jre–headless
- * gcj–4.5–jre–headless
- * openjdk–7–jre–headless
- Try: sudo apt–get install
根据需要选择安装。这里笔者安装过程如下:
- sudo add–apt–repository ppa:webupd8team/java
- sudo apt–get update
- sudo apt–get install oracle–java8–installer
- sudo apt–get install oracle–java8–set–default
第三步:确认java环境:
在启动终端并输入
- gedit /etc/profile
在末尾添加一下配置,保存并退出
- #set jdk environment
- export JAVA_HOME=/usr/lib/jvm/java-8-oracle
- export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
- export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
终端输入一下命令使配置生效
- 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条)
你好,有个关于PHP网站的问题需要咨询你,麻烦添加下我381829616