【问题标题】:Install rJava on centOS在 centOS 上安装 rJava
【发布时间】:2012-11-02 18:15:51
【问题描述】:

我在 centOS 虚拟机 (cloudera cdh3u4) 上安装 rJava 时遇到问题。

我先这样做了:sudo R CMD javareconf

[cloudera@localhost ~]$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version     : 1.6.0_31
Java home path   : /usr/java/jdk1.6.0_31/jre
Java compiler    : /usr/bin/javac
Java headers gen.:
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/lib64:/lib64:/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/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm
JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux

Updating Java configuration in /usr/lib64/R
Done.

但是当我想安装 rJava 时,我会解决这个问题:

> install.packages( c('rJava'),
+ repos='http://cran.revolutionanalytics.com')

    ...
    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/cloudera/R/x86_64-redhat-linux-gnu-library/2.15/rJava’

    The downloaded source packages are in
            ‘/tmp/RtmpR5V6t5/downloaded_packages’
    Warning message:
    In install.packages(c("rJava"), repos = "http://cran.revolutionanalytics.com") :
      installation of package ‘rJava’ had non-zero exit status

我不确定,但这是否意味着我需要安装 JDK?如果是,您是否知道一个好的站点,我可以在其中找到为我的案例安装正确 JDK 的分步信息? (我的最终目的是安装 rhdfs,而 rjava 是它所需要的依赖项)

【问题讨论】:

    标签: r rjava


    【解决方案1】:

    试试这个它对我有用,解决了配置问题 http://www.ibm.com/support/knowledgecenter/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsights.install.doc/doc/install_install_r.html

    我在安装 rJava 时遇到了困难,并且几乎没有学到什么东西。让我解释。 当您在 R 中发出 install package 命令时

    install.packages("rJava")
    

    查找在 R 环境中设置的以下变量。

    检查 R 中的 Java 支持... 存在:解释器: '/usr/java/jdk1.8.0_111/jre/bin/java' 归档器: '/usr/java/jdk1.8.0_111/jre/../bin/jar' 编译器: '/usr/java/jdk1.8.0_111/jre/../bin/javac' 头文件准备: '/usr/java/jdk1.8.0_111/jre/../bin/javah' cpp 标志: '-I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux' java 库:'-L/usr/java/jdk1.8.0_111/jre/lib/amd64/server -ljvm -ldl'

    我的 java 安装在 /usr/java/jdk1.8.0_111。 验证变量指定的每个路径是否正确。接下来寻找你的 LD_LIBRARY_PATH。我认为它在这条路径中寻找“libjvm.so”。对我来说是

    export LD_LIBRARY_PATH=/usr/lib/jvm/jdk1.8.0_111/jre/lib/amd64/server:/usr/lib/jvm/jdk1.8.0_111/jre/lib/amd64/
    

    设置您的 JAVA_HOME 环境变量

    先发出命令

    R CMD javareconf -e
    

    它将设置以下变量 JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_PATH 修改JAVA_LIBS目录

    export JAVA_LIBS="$JAVA_LIBS -ldl"
    

    再次发出不带 -e 的 javareconf 命令

    R CMD javareconf
    

    现在进入 R shell 并发出 rJava install 命令,它应该会找到所有 env 变量并且它应该可以工作。

    【讨论】:

      【解决方案2】:

      是的,您确实需要 JDK。

      不管怎样,我的 Debian / Ubuntu 软件包在构建我们的 r-cran-rjava 软件包时安装了 openjdk-6-jdk

      看起来java-1.6.0-openjdk.x86_64 包应该适合你,你也可以试试java-1.7.0-openjdk.x86_64

      【讨论】:

      • 谢谢。我安装了这个:$ su -c "yum install java-1.6.0-openjdk-devel"。但是还是有错误。 “检查 JNI 数据类型...配置:错误:一种或多种 JNI 类型与相应的本机类型不同。您可能需要使用非标准编译器标志或不同的编译器才能解决此问题。”
      • 如何解决 JNI 问题?
      【解决方案3】:

      早期版本会出现间歇性问题。镜像不是最新的,因此请访问 www.rforge.net 的源代码:http://www.rforge.net/rJava/files/。请使用

      install.packages('rJava',,'http://www.rforge.net/')

      安装。” 这几乎是正确的。这确实有效:

      install.packages('rJava', .libPaths()[1], 'http://www.rforge.net/')

      “.libPaths()[1]”只是告诉 R 将包安装在主库目录中。出于某种原因,将值留空是行不通的,即使它应该作为默认值工作。

      【讨论】:

      • 您只是在更改存储库,这对设置 java 变量有何帮助?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 2020-12-29
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多