无法在Ubuntu 10.04上安装rJava 0.9

时间:2011-08-20 02:52:25

标签: r rjava

我使用来自CRAN apt repo的R 2.13用于Ubuntu 10.04,我正在尝试安装Deducer,它需要JGR / rJava,但是rJava拒绝构建/安装,抱怨无法构建JNI应用程序。我按照建议尝试sudo R CMD javareconf,但这只会导致有关配置未设置的错误。我找到了R: rJava package install failing,所以我尝试了安装r-cran-rjava的建议(但是0.8并且Deducer / JGR似乎坚持安装0.9)并摆弄我的$JAVA_HOME,一切都无济于事。有什么想法吗?

以下是发生的事情的更完整的记录:

$ sudo aptitude install r-cran-rjava
...
$ R

R version 2.13.1 (2011-07-08)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> install.packages(c('JGR','Deducer'))
Installing package(s) into ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13’
(as ‘lib’ is unspecified)
also installing the dependencies ‘rJava’, ‘JavaGD’, ‘iplots’

trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/rJava_0.9-1.tar.gz'
Content type 'application/x-gzip' length 527197 bytes (514 Kb)
opened URL
==================================================
downloaded 514 Kb

trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/JavaGD_0.5-4.tar.gz'
Content type 'application/x-gzip' length 102242 bytes (99 Kb)
opened URL
==================================================
downloaded 99 Kb

trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/iplots_1.1-4.tar.gz'
Content type 'application/x-gzip' length 330323 bytes (322 Kb)
opened URL
==================================================
downloaded 322 Kb

trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/JGR_1.7-7.tar.gz'
Content type 'application/x-gzip' length 536564 bytes (523 Kb)
opened URL
==================================================
downloaded 523 Kb

trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/Deducer_0.4-4.tar.gz'
Content type 'application/x-gzip' length 5325794 bytes (5.1 Mb)
opened URL
==================================================
downloaded 5.1 Mb

* installing *source* package ‘rJava’ ...
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
c    hecking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
configure: checking whether gcc supports static inline...
yes
checking whether setjmp.h is POSIX.1 compatible... yes
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver    : '/usr/bin/jar'
compiler    : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags   : '-I/usr/lib/jvm/java-6-openjdk/jre/../include'
java libs   : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details.

Make sure you have Java Development Kit installed and correctly registered in R.
If in doubt, re-run "R CMD javareconf" as root.

ERROR: configuration failed for package ‘rJava’
* removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/rJava’
* installing *source* package ‘JavaGD’ ...
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking return type of signal handlers... void
checking for memset... yes
checking for mkdir... yes
checking for rmdir... yes
checking for select... yes
checking for socket... yes
checking Java support in R... present:
interpreter : '/usr/bin/java'
cpp flags   : '-I/usr/lib/jvm/java-6-openjdk/jre/../include'
java libs   : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details.
ERROR: configuration failed for package ‘JavaGD’
* removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/JavaGD’
ERROR: dependency ‘rJava’ is not available for package ‘iplots’
* removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/iplots’
ERROR: dependencies ‘rJava’, ‘JavaGD’, ‘iplots’ are not available for package ‘JGR’
* removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/JGR’
ERROR: dependencies ‘rJava’, ‘JGR’ are not available for package ‘Deducer’
* removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/Deducer’

The downloaded packages are in
        ‘/tmp/RtmpCSITmm/downloaded_packages’
Warning messages:
1: In install.packages(c("JGR", "Deducer")) :
  installation of package 'rJava' had non-zero exit status
2: In install.packages(c("JGR", "Deducer")) :
  installation of package 'JavaGD' had non-zero exit status
3: In install.packages(c("JGR", "Deducer")) :
  installation of package 'iplots' had non-zero exit status
4: In install.packages(c("JGR", "Deducer")) :
  installation of package 'JGR' had non-zero exit status
5: In install.packages(c("JGR", "Deducer")) :
  installation of package 'Deducer' had non-zero exit status
>


R version 2.13.1 (2011-07-08)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> install.packages('rJava')
Installing package(s) into ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13’
(as ‘lib’ is unspecified)
trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/rJava_0.9-1.tar.gz'
Content type 'application/x-gzip' length 527197 bytes (514 Kb)
opened URL
==================================================
downloaded 514 Kb

* installing *source* package ‘rJava’ ...
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
configure: checking whether gcc supports static inline...
yes
checking whether setjmp.h is POSIX.1 compatible... yes
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver    : '/usr/bin/jar'
compiler    : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags   : '-I/usr/lib/jvm/java-6-openjdk/jre/../include'
java libs   : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details.

Make sure you have Java Development Kit installed and correctly registered in R.
If in doubt, re-run "R CMD javareconf" as root.

ERROR: configuration failed for package ‘rJava’
* removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/rJava’

The downloaded packages are in
        ‘/tmp/RtmpTk0ftk/downloaded_packages’
Warning message:
In install.packages("rJava") :
  installation of package 'rJava' had non-zero exit status
>
$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version     : 1.6.0_20
Java home path   : /usr/lib/jvm/java-6-openjdk/jre
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Java library path: $(JAVA_HOME)/lib/amd64/server:$(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib
JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -L$(JAVA_HOME)/lib/amd64 -L$(JAVA_HOME)/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm
JNI cpp flags    :

Updating Java configuration in /etc/R
Done.

$ R

R version 2.13.1 (2011-07-08)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> install.packages('rJava')
Installing package(s) into ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13’
(as ‘lib’ is unspecified)
trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/rJava_0.9-1.tar.gz'
Content type 'application/x-gzip' length 527197 bytes (514 Kb)
opened URL
==================================================
downloaded 514 Kb

* installing *source* package ‘rJava’ ...
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
c    hecking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
configure: checking whether gcc supports static inline...
yes
checking whether setjmp.h is POSIX.1 compatible... yes
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver    : '/usr/bin/jar'
compiler    : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags   : ''
java libs   : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm'
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.

ERROR: configuration failed for package ‘rJava’
* removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/rJava’

The downloaded packages are in
        ‘/tmp/RtmpsJBxfe/downloaded_packages’
Warning message:
In install.packages("rJava") :
  installation of package 'rJava' had non-zero exit status
>

4 个答案:

答案 0 :(得分:17)

嗯,发布后不久我就找到了答案:

http://r-interface.blogspot.com/2012/04/install-r-jgr-and-deducer-in-ubuntu.html

虽然我已经安装了Sun Java,但关键是在运行javareconf之前运行update-java-alternatives以实际切换到Sun Java:

sudo update-java-alternatives -s java-6-sun
sudo R CMD javareconf

答案 1 :(得分:1)

另一个(相对明显的)警告:不要做我做的事情并安装java6和java7。这导致了我无法解决的冲突。通过指定路径和环境变量。删除并重新安装java6导致JGR的成功安装。 (这在ubuntu上精确,在Apple G4 powerbook上)

答案 2 :(得分:0)

这是另一种选择:

在运行R之前,执行此操作

export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/amd64/server

(对于上面的路径,如果您有不同的配置,请替换您的特定libjvm.so的位置)。要查找libjvm.so,您可以执行

sudo updatedb && locate libjvm.so

答案 3 :(得分:0)

DWright是正确的......另一种选择是每次导出它而不是你开始R找到你的java路径

 sudo locate libjvm.so

并将ir添加到ldpaths

 sudo gedit /etc/R/ldpaths 

i.e 
${JAVA_HOME=/usr/java/jdk1.7.0_07/jre}