【问题标题】:rJava installation in R on debian在 debian 上的 R 中安装 rJava
【发布时间】:2013-06-10 08:06:26
【问题描述】:

在 Debian 64 位机器上更新到 R 3.0.1 后,不想安装 rJava 包。

配置失败,所以 sudo R CMD javareconf [这在另一台 debian 机器上工作]。但是它在这里不起作用,其他人有这个问题吗? [见下面的终端输出]

henk@crunchbang:~$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version     : 1.6.0_18
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

trying to compile and link a JNI progam 
detected JNI cpp flags    : 
detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic  -O3 -pipe  -g  -c conftest.c -o conftest.o
conftest.c:1:17: error: jni.h: No such file or directory
conftest.c: In function ‘main’:
conftest.c:4: warning: implicit declaration of function ‘JNI_CreateJavaVM’
make: *** [conftest.o] Error 1
Unable to compile a JNI program


Java library path: 
JNI cpp flags    : 
JNI linker flags : 
Updating Java configuration in /usr/lib64/R
Done.

# check java
henk@crunchbang:~$ java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze2)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

java环境:

henk@crunchbang:~$ aptitude search "?provides(java-runtime)"
i A default-jre                            - Standard Java or Java compatible Runtime        
i A default-jre-headless                   - Standard Java or Java compatible Runtime (headle
p   gcj-4.4-jre                            - Java runtime environment using GIJ/classpath    
p   gcj-4.4-jre-headless                   - Java runtime environment using GIJ/classpath (he
p   gcj-jre                                - Java runtime environment using GIJ/classpath    
p   gcj-jre-headless                       - Java runtime environment using GIJ/classpath (he
i A openjdk-6-jre                          - OpenJDK Java runtime, using Hotspot JIT         
i A openjdk-6-jre-headless                 - OpenJDK Java runtime, using Hotspot JIT (headles
i   sun-java6-jre                          - Sun Java(TM) Runtime Environment (JRE) 6 (archit

【问题讨论】:

  • 这个问题看起来几乎一样,也许更新到 openjdk-7-* 也可以解决您的问题。看看这里:stackoverflow.com/questions/16438073/…
  • 嗨丹尼尔,我已经尝试过这个选项,但它会导致同样的错误。以某种方式更新到 openjdk 不起作用 [sudo apt-get install openjdk-7-jre]:'不可用,但由另一个包引用'。
  • jni.h: No such file or directory 不好看;确保您确实安装了完整的 SDK。也可以考虑sudo apt-get install r-cran-rjava,因为我们为您提供了一个预构建的包。
  • Dirk,我已经运行了 sudo apt-get install r-cran-rjava,但还没有启动。 aalso 运行了突触,但没有看到我可以安装的任何其他内容。之前没问题——会不会是openjdk和sun-java的冲突?

标签: r rjava


【解决方案1】:

我采取了这些步骤(在带有 Ubuntu 14.04 和 RStudio-Server 的 EC2 上)安装需要 rJava 的 R 包 qdap: (我可能在这里和那里引用其他来源,我不记得来自哪里,但谢谢。)

http://sites.psu.edu/theubunturblog/cran2deb4ubuntu/ 安装这些存储库

(debian:http://r-forge.r-project.org/projects/cran2deb/)

sudo add-apt-repository ppa:marutter/rrutter
sudo add-apt-repository ppa:marutter/c2d4u 
sudo apt-get update

安装 Java:

sudo apt-get install openjdk-7-jdk
ls /usr/lib/jvm

为 Java 设置系统范围的环境变量:

sudo joe /etc/profile.d/javaenvvar.sh

其中包含:

# JAVA environment variable
# for openjdk-7-jdk in order to use the R package `qdap`.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
export PATH=$PATH:$JAVA_HOME/bin

然后退出 BASH 并重新登录。检查您的路径更改:

echo $PATH
echo $JAVA_HOME

然后:

sudo R CMD javareconf

应该返回:

Java interpreter : /usr/bin/java
Java version     : 1.7.0_65
Java home path   : /usr/lib/jvm/java-7-openjdk-amd64/jre
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar

使用以下条目创建文件/etc/ld.so.conf.d/java.conf

/usr/lib/jvm//usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64
/usr/lib/jvm//usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server

然后从这些新存储库安装rJava

sudo apt-get install r-cran-rjava

刚刚将rJava 安装到/usr/lib/R/site-library,希望所有 RStudio-Server 用户都可以访问。

sudo update-alternatives --config java

希望只安装了一个 java。

更新 R 包:

sudo R
> packageStatus()
> update.packages()

在系统范围内安装 R 包(仍在 sudo R 中):

> install.packages("qdap", lib="/usr/lib/R/site-library")

重置 RStudio-Server:
首先退出 RStudio-Server。

sudo rstudio-server stop
sudo rstudio-server start

重新登录 RStudio-Server。

如果您遇到内存错误,请尝试分离一些软件包。 EC2 t2-micro 只有 1 GB 的 RAM。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,解决方法是更新到 openjdk-7-* 并使用update-alternatives --config java 设置 java-7-openjdk 路径。

    【讨论】:

      猜你喜欢
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 2012-11-02
      • 1970-01-01
      • 2016-01-05
      相关资源
      最近更新 更多