J'ai le problème très fréquent que Rjava n'installe pas correctement sur Ubuntu. Ce problème a été dsicussed à plusieurs endroits ici , ici , ici , pour ne citer que quelques - uns.
Le problème de base est que sur l'installation du package Rjava, le message d'erreur suivant est produit
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’
Il existe différentes solutions étroitement liées à ce problème. La plupart d'entre eux utilisent sudo R CMD javareconf
pour configurer Java R ( également une -e
variante ). Certains suggèrent de mettre le JAVA_HOME
chemin dans les variables d'environnement ( d' autres disent ne pas ). D' autres suggèrent de désinstaller et de réinstaller R tandis que d' autres suggèrent d' installer Rjava de Cran. Il y en a plusieurs qui reccomend update alternatives
. Il existe d' autres variantes de ces solutions.
J'ai essayé des combinaisons de tous ce qui précède, et ai nulle part, donc je fais bien quelque chose de mal.
entrer des echo $JAVA_HOME
rendements
/usr/lib/jvm/java-11-openjdk-amd64
mes etc / environnement se présente comme suit
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"
Quand je lance R CMD javaconf, il ressemble à ceci
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.
Qu'est-ce que je fais mal et comment puis-je obtenir Rjava installer correctement?
ÉDITER:
ayant réussi à installer avec succès à l' aide Rjava sudo apt-get install r-cran-rjava
je sais l'erreur suivante
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
Je l' ai étudié avec l'affiche originale (nous travaillons au même endroit) et le problème est que dans OpenJDK11 ils se sont déplacés autour de certains des .so
fichiers que la machine virtuelle Java vit, en particulier , libjvm.so
qui dans le paquet Ubuntu est maintenant /usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/
.
Cela signifie que même si vous installez le paquet Ubuntu pour Rjava avec apt install r-cran-rjava
elle échoue lorsque vous essayez de library(rJava)
.
La solution est d'ajouter /usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/
à votre $LD_LIBRARY_PATH
en ajoutant:
export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server:$LD_LIBRARY_PATH
à la fin de votre ~/.bashrc
et lance un nouveau shell (ou source ~/.bashrc
).
C'est quelque chose que nous devions corriger nos installations centrales de OpenJDK , par exemple ici: https://github.com/UCL-RITS/rcps-buildscripts/blob/master/adoptopenjdk-11.0.3_install.sh#L46
Si vous voulez faire ce travail avec rstudio lancé à partir de Gnome, vous devez ajouter ce répertoire ldconfig
.
Comme root
(ou sudo
) créer un fichier dans /etc/ld.so.conf.d/
lequel vous devez appeler quelque chose avec un .conf
exemple d'extension java.conf
qui contient la ligne:
/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server
Et puis comme root
courir
ldconfig -v
Cela devrait ajouter le répertoire aux emplacements qui executables lancés par GNOME rechercher. Cette partie du problème ( les paramètres en ignorant GNOME dans bashrc
) a été un problème dans Ubuntu depuis au moins 9,04 ( https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/366728/ ).