Ich versuche, rJava in R 3.6.1 auf Ubuntu 18.04 zu installieren. Ich habe nach ähnlichen Fragen gesucht, aber die bereitgestellten Antworten scheinen für mich nicht funktioniert zu haben.
Ich habe es zunächst versucht, sudo apt install r-cran-rjava
gefolgt voninstall.packages("rJava")
sudo apt install r-cran-rjava
hat ein Abhängigkeitsproblem zurückgegeben, das anscheinend durch das Hinzufügen des Debian-Buster-Repositorys gelöst werden konnte. etc/apt/sources.list
Dies habe ich getan, indem ich die Anweisungen unter folgender Adresse befolgt habe:https://cran.r-project.org/bin/linux/debian/. r-cran-rjava scheint jetzt korrekt installiert zu sein:
$ sudo apt install r-cran-rjava
[sudo] password for tj:
Reading package lists... Done
Building dependency tree
Reading state information... Done
r-cran-rjava is already the newest version (0.9-11-1cran1ppabionic0).
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
Als ich es jedoch install.packages("rJava")
von R aus ausführte, wurde die folgende Fehlermeldung zurückgegeben:
install.packages("rJava")
Installing package into ‘/home/tj/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/rJava_0.9-11.tar.gz'
Content type 'application/x-gzip' length 675188 bytes (659 KB)
==================================================
downloaded 659 KB
* installing *source* package ‘rJava’ ...
** package ‘rJava’ successfully unpacked and MD5 sums checked
** using staged installation
checking for gcc... gcc -std=gnu99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
configure: checking whether gcc -std=gnu99 supports static inline...
yes
checking whether setjmp.h is POSIX.1 compatible... yes
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver : '/usr/bin/jar'
compiler : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags : '-I/usr/lib/jvm/java-11-oracle/include -I/usr/lib/jvm/java-11-oracle/include/linux'
java libs : '-L/usr/lib/jvm/java-11-oracle/lib/server -ljvm'
checking whether Java run-time works... yes
checking whether -Xrs is supported... yes
checking whether -Xrs will be used... yes
checking whether JNI programs can be compiled... yes
checking whether JNI programs run... 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/tj/R/x86_64-pc-linux-gnu-library/3.6/rJava’
The downloaded source packages are in
‘/tmp/Rtmp9GstQE/downloaded_packages’
Warning message:
In install.packages("rJava") :
installation of package ‘rJava’ had non-zero exit status
Die hier veröffentlichten Anweisungenhttps://thishosting.rocks/install-java-ubuntu/führte dazu, dass ich mehrere Java-Versionen installierte, darunter Java-11-Oracle. Ich habe Java-11-Oracle auf Standard gesetzt, sudo update-alternatives --config java
bevor ich JAVA_HOME aktualisiert habe, sudo nano /etc/environment
und echo $JAVA_HOME
es ergibt sich:
$ echo $JAVA_HOME
/usr/lib/jvm/java-11-oracle/bin/java
Aber als ich sudo R CMD javareconf
es ausführte, kam Folgendes zurück:
*** JAVA_HOME is not a valid path, ignoring
Java interpreter : /usr/bin/java
Java version : 11.0.4
Java home path : /usr/lib/jvm/java-11-oracle
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/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-oracle/include -I/usr/lib/jvm/java-11-oracle/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-oracle/lib/server -ljvm -L/usr/lib/R/lib -lR
JAVA_HOME : /usr/lib/jvm/java-11-oracle
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.
und install.packages("rJava")
gibt dieselbe Fehlermeldung wie zuvor zurück. Ich habe versucht, java-11-openjdk und java-8-openjdk mit derselben Methode als Standard festzulegen und mehrere Variationen des JAVA_HOME-Pfads zu verwenden, wie in einigen älteren Beiträgen zu diesem Thema vorgeschlagen (https://stackoverflow.com/questions/3311940/r-rjava-package-install-failingund https://stackoverflow.com/questions/31684236/java-home-funktioniert-nicht-in-ubuntuR CMD javareconf
), liefern aber bisher install.packages("rjava")
ähnliche Ergebnisse.
Ich bin ziemlich neu bei R und Ubuntu und habe das Gefühl, dass ich hier in einer Sackgasse gelandet bin. Kann jemand sehen, was ich übersehe? Sollte ich zu einer älteren Version von R zurückkehren? Für jede Hilfe wäre ich sehr dankbar.