2013-06-10 2 views
3

После обновления до R 3.0.1 на 64-разрядной машине Debian пакет rJava не хочет устанавливать.Установка rJava в R на debian

Ошибка конфигурации, поэтому sudo R CMD javareconf [это работало на другой машине debian]. но здесь это не работает, есть ли у кого-нибудь еще такая проблема? [См вывод на терминал ниже]

[email protected]:~$ 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 
[email protected]:~$ 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 среды:

[email protected]:~$ 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 
+0

Этот вопрос выглядит примерно так же, возможно, обновление до openjdk-7- * также решает вашу проблему. Посмотрите здесь: http://stackoverflow.com/questions/16438073/unable-to-install-rjava-in-r-3-0-in-ubuntu-13-04 –

+0

Привет, Даниэль, я пробовал этот вариант, но это приводит к той же ошибке. Обновление openjdk каким-то образом не работает [sudo apt-get install openjdk-7-jre]: 'не доступен, а передается другим пакетом'. – Henk

+2

'jni.h: Нет такого файла или каталога' не выглядит хорошо; убедитесь, что у вас действительно установлен полный SDK. Также рассмотрите 'sudo apt-get install r-cran-rjava', поскольку мы предоставляем вам готовый пакет. –

ответ

1

Я имел такую ​​же проблему, раствор обновления до OpenJDK-7- * и использовать update-alternatives --config java для установки Java-7-OpenJDK дорожка.

3

Я взял эти шаги (на EC2 с Ubuntu 14.04 и RStudio-сервера), чтобы установить R пакет qdap который требует rJava: (я, вероятно, со ссылкой на другие источники здесь и там, и я не помню, откуда , но спасибо)

Установка этих репозиториев из 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-сервера, с надеждой.

sudo update-alternatives --config java 

Надеюсь, установлен только один java.

Update R пакеты:

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

установки пакетов R всей системы (еще в SUDO R):

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

Сброс RStudio-сервера:
Вход из RStudio-сервер первым.

sudo rstudio-server stop 
sudo rstudio-server start 

Зарегистрируйтесь на RStudio-Server.

Если вы получили ошибку памяти, попробуйте отсоединить некоторые пакеты. EC2 t2-micro имеет только 1 ГБ ОЗУ.

Смежные вопросы