Ошибка: невозможно загрузить установленные пакеты прямо сейчас

Когда я попытался запустить консоль R в Eclipse, я получил эту ошибку:

....Please make sure that R package 'rj' (1.1 or compatible) is installed...

Поэтому я попытался установить его в консоли R следующим образом:

install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")

и получил эту ошибку:

 ** testing if installed package can be loaded
 Error : .onLoad failed in loadNamespace() for 'rj.gd', details:
 call: dyn.load(file, DLLpath = DLLpath, ...)
 error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rj.gd/libs/rj.gd.so':
 libjvm.so: cannot open shared object file: No such file or directory
 Error: loading failed
 Execution halted
 ERROR: loading failed

и я обнаружил, что при установке rJava с помощью: install.packages("rJava") получает похожую ошибку:

** testing if installed package can be loaded
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed

Когда я бегу sudo R CMD javareconfЯ получил этот вывод:

Java interpreter : /usr/bin/java
Java version     : 1.7.0
Java home path   : /usr/lib/jvm/java-7-oracle/jre
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
NOTE: Your JVM has a bogus java.library.path system property!
Trying a heuristic via sun.boot.library.path to find jvm library...
Java library path: $(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/lib/amd64/server
JNI linker flags : -L$(JAVA_HOME)/lib/amd64 -L$(JAVA_HOME)/lib/amd64/server -ljvm
JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux

Updating Java configuration in /etc/R
Done.

Кстати, моя конфигурация:

Ubuntu 11.10 64bit
Eclipse 3.7
Oracle-1.7-jdk
R version 2.15.1 

11 ответов

Решение

Я нашел решение:

export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-oracle/lib/amd64:/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server

затем

sudo R CMD javareconf

Примечание. Путь (java-7-oracle) необходимо обновлять в зависимости от установки Java.

Для пользователей Linux(Ubuntu): Если у вас установлен oracle-java (7/8). Это будет в этом месте /usr/lib/jvm а также sudo доступ требуется.

Создать файл /etc/ld.so.conf.d/java.conf со следующими записями:

/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server

(Замените java-8-oracle на java-7-oracle в зависимости от вашей версии Java)

Затем:

sudo ldconfig

Перезапустите RStudio, а затем установите пакет rJava.

ИЛИ ЖЕ

Также альтернативным методом является экспорт LD_LIBRARY_PATH со значением пути к библиотеке Java, полученным из команды R CMD javareconf -e и беги install.packages

Я получил похожую проблему и смог решить ее, запустив

R CMD javareconf -e

Вывод R CMD javareconf -e

Java interpreter : /export/apps/jdk/JDK-1_6_0_27/jre/bin/java
Java version     : 1.6.0_27
Java home path   : /export/apps/jdk/JDK-1_6_0_27
Java compiler    : /export/apps/jdk/JDK-1_6_0_27/bin/javac
Java headers gen.: /export/apps/jdk/JDK-1_6_0_27/bin/javah
Java archive tool: /export/apps/jdk/JDK-1_6_0_27/bin/jar
Java library path: /export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
JNI linker flags : -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64 -L/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm
JNI cpp flags    : -I/export/apps/jdk/JDK-1_6_0_27/include -I/export/apps/jdk/JDK-1_6_0_27/include/linux

The following Java variables have been exported:
JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_PATH
Running: /bin/bash

После настройки LD_LIBRARY_PATH к тому же значению, что и JAVA_LD_LIBRARY_PATH как показано в выходных данных выше. Я был в состоянии установить RJ.

export LD_LIBRARY_PATH=/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

Запустите R, а затем установите RJ

install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")

Я сделал следующее, и это сработало для меня:

export LD_LIBRARY_PATH=$JAVA_LD_LIBRARY_PATH
sudo R CMD javareconf

Тогда мне тоже пришлось перезапустить R.

Спустя годы я остановился на этом вопросе после поиска ошибки, о которой сообщает R после того, как неудачно установил пакет, который требовал перехода на Oracle Oracle.

Все, что мне нужно было сделать, чтобы это исправить:

$ sudo R CMD javareconf

Или просто установить библиотеку в R?

Я только что выполнил эту команду в R:

Sys.setenv(JAVA_HOME='/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server')

(замените "/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server" на путь к вашей библиотеке Java, который можно найти с помощью команды "sudo R CMD javareconf")

Возможно, это не самое элегантное решение, но оно сработало для меня!

У меня не было установленного jdk, который я мог исправить sudo apt-get install jdk-*После этого я мог запустить sudo R CMD javareconf который всегда рисовал сообщение об ошибке раньше. Все было настроено правильно и никаких ручных твиков там, где требовалось, и после этого установка пакета прошла гладко в R (требуется перезагрузка).

Ничто из вышеперечисленного не помогло мне, единственное решение, которое установило rJava на линуксе Ubuntu без проблем прошел RScript Команда после установки базы R:

$ sudo Rscript -e 'install.packages("rJava", repos = "http://cran.r-project.org/")'

При облицовке отсутствует limjvm.so ошибки убедитесь, что правильный ldpaths подобран из стандартной конфигурации в /etc/R по сравнению с тем, кто в /usr/lib/R/etc,

Это исправляет проблему LD_LIBRARY_PATH для меня (Linux, Debian 7.1.0, tc-shell, R версия 3.0.2):

Добавьте эту строку в.cshrc:

setenv LD_LIBRARY_PATH $ JAVA_HOME / jre / lib / amd64: $ JAVA_HOME / jre / lib / amd64 / server

Добавление этой команды в ~/.login было недостаточно; переменная окружения LD_LIBRARY_PATH все еще не была известна в новых xterms: echo $LD_LIBRARY_PATH: LD_LIBRARY_PATH: неопределенная переменная. (Зачем??)

Любопытно, что при запуске R от имени суперпользователя не было проблем с поиском libjvm.so .

Я исправил это, просто запустив R с помощью sudo, а затем запустив install.packages('rJava`),

Другие вопросы по тегам