2015-02-23 111 views
2

我正嘗試在全新安裝的openSUSE 13.2上安裝rJava。 JRE和JDK都安裝。當使用install.packages()它實際上工作正常,並編譯了一些東西,但後來我得到的第一個錯誤消息是這些:rJava不會在openSUSE 13.2上安裝

mp -L/usr/lib64/R/lib -lR -lrt -ldl -lm -licuuc -licui18n 
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -licuuc 
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -licui18n 
collect2: error: ld returned 1 exit status 
Makefile.all:38: recipe for target 'libjri.so' failed 
make[2]: *** [libjri.so] Error 1 
make[2]: Leaving directory '/tmp/RtmpmK9cz2/R.INSTALL48f8aa9a7b5/rJava/jri/src' 
Makefile.all:21: recipe for target 'src/JRI.jar' failed 
make[1]: *** [src/JRI.jar] Error 2 
make[1]: Leaving directory '/tmp/RtmpmK9cz2/R.INSTALL48f8aa9a7b5/rJava/jri' 
Makevars:14: recipe for target 'jri' failed 
make: *** [jri] Error 2 
ERROR: compilation failed for package ‘rJava’ 

運行R CMD javareconf給了我這樣的:

Java interpreter : /usr/bin/java 
Java version  : 1.8.0_40 
Java home path : /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre 
Java compiler : /usr/bin/javac 
Java headers gen.: /usr/bin/javah 
Java archive tool: /usr/bin/jar 

trying to compile and link a JNI progam 
detected JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux 
detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm 
gcc -std=gnu99 -I/usr/lib64/R/include -DNDEBUG -I/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/../include -I/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/../include/linux -I/usr/local/include -fpic -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -c conftest.c -o conftest.o 
gcc -std=gnu99 -shared -L/usr/local/lib64 -o conftest.so conftest.o -L/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/lib/amd64/server -ljvm -L/usr/lib64/R/lib -lR 


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

我甚至不能確定這是一個Java問題。任何想法出了什麼問題?

+1

'R CMD javareconf'的結果是什麼? – 2015-02-23 06:53:55

+2

由於錯誤說找不到-licuuc,請嘗試安裝libicu48。還要確保路徑的配置正確 – 2015-02-23 08:06:53

回答

4

原來的問題是缺少libicu-devel包。安裝它解決了問題。

+0

我還必須安裝'xz-devel'和'pcre-devel'。當然缺少的東西很大程度上取決於onces特定的linux安裝。 – 2016-06-28 12:11:52