Ошибка: невозможно загрузить установленные пакеты прямо сейчас
Когда я попытался запустить консоль 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`)
,