Сообщение об ошибке «Невозможно запустить простую программу JNI» при установке rJava на R 3.6 для Ubuntu Bionic Beaver - PullRequest
1 голос
/ 29 октября 2019

У меня очень распространенная проблема: rJava не устанавливается правильно в Ubuntu. Эта проблема обсуждалась в нескольких местах здесь , здесь , здесь , если назвать несколько.

Основная проблема заключается в установкеВ пакете rJava выдается следующее сообщение об ошибке

configure: error: Unable to run a simple JNI program. Make sure you have configured R with Java support (see R documentation) and check config.log for failure reason.
Warning in system(cmd) : error in running command
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/jonno/R/x86_64-pc-linux-gnu-library/3.6/rJava’

Существуют различные тесно связанные решения этой проблемы. Большинство из них использует sudo R CMD javareconf для настройки Java для R ( также вариант -e ). Некоторые предлагают установить путь JAVA_HOME в переменных среды ( другие говорят, что не ). Другие предлагают удалить и переустановить R, а Другие предлагают установить rJava из крана. Есть несколько, которые рекомендуют update alternatives. Существуют и другие варианты этих решений.

Я пробовал комбинации всего вышеперечисленного и ничего не нашел, поэтому явно что-то делаю не так.

ввод echo $JAVA_HOME возвращает

/usr/lib/jvm/java-11-openjdk-amd64

мой etc / environment выглядит следующим образом

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/$
MKL_THREADING_LAYER=GNU
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

Когда я запускаю R CMD javaconf, он выглядит следующим образом

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

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG -I/usr/lib/jvm/java-11-openjdk-amd64/include -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux    -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c conftest.c -o conftest.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/java-11-openjdk-amd64/lib/server -ljvm -L/usr/lib/R/lib -lR


JAVA_HOME        : /usr/lib/jvm/java-11-openjdk-amd64
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /usr/lib/R
Done.

Что такоеЯ делаю что-то не так, и как заставить rJava правильно установить?

РЕДАКТИРОВАТЬ:

после успешной установки rJava с использованием sudo apt-get install r-cran-rjava Я знаю, получаю следующую ошибку

Error: package or namespace load failed for ‘rJava’:
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/lib/R/site-library/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory
...