Ubuntu étant relativement nouveau, je ne connais pas beaucoup de commandes qui sont probablement devenues la norme pour beaucoup d’entre vous. J'essaie de configurer R et avec lui les dépendances nécessaires pour installer Java, par exemple. JGR, rjava, etc. J'ai lu pas mal d'instructions pour le faire, mais j'ai dû me tromper. Voici l'état de R et Java:
R --version
R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)
Java -version
Java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.1)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
R CMD javareconf
Java interpreter : /usr/bin/Java
Java version : 1.6.0_23
Java home path : /usr/lib/jvm/Java-6-openjdk/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Java library path: /usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64/server:/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64:/usr/lib/jvm/Java-6-openjdk/jre/../lib/AMD64:/usr/Java/packages/lib/AMD64:/usr/lib/jni:/lib:/usr/lib
JNI linker flags : -L/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64/server -L/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64 -L/usr/lib/jvm/Java-6-openjdk/jre/../lib/AMD64 -L/usr/Java/packages/lib/AMD64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm
JNI cpp flags :
Mais lorsque j'essaie d'installer 'JavaGD' dans R, qui est une dépendance de JGR, je reçois:
...
checking Java support in R... present:
interpreter : '/usr/bin/Java'
cpp flags : ''
Java libs : '-L/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64/server -L/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64 -L/usr/lib/jvm/Java-6-openjdk/jre/../lib/AMD64 -L/usr/Java/packages/lib/AMD64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm'
configure: error: One or more Java configuration variables are not set.
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.
...
Toute aide serait grandement appréciée. Merci!
Je ne connais pas bien R, mais d'après votre console, il semble que R nécessite un JDK alors que vous avez un JRE comme variable par défaut Java. Je vous conseillerais de vous assurer que le JDK est installé ou installé (Sudo apt-get install openjdk-6-jdk
).
Assurez-vous également que votre variable d’environnement Java_HOME pointe vers le JDK et non vers le JRE (vous pouvez voir dans votre sortie que le chemin d’accueil Java est défini sur /usr/lib/jvm/Java-6-openjdk/jre
.
On ne devrait pas installer aveuglément openjdk-6-jdk
. Ce qui m'a aidé, était de changer la version de Java. Heureusement, il existe un outil Nice Ubuntu pour le faire:
Sudo update-alternatives --config Java
Vous pouvez voir quels javas sont déjà disponibles sur le système et définir celui qui vous convient. Et installez ensuite openjdk-7-jdk
ou openjdk-6-jdk
(ou les deux)
et seulement puis exécutez
Sudo R CMD javareconf
Plus de détails sur Java les choix sont sur Wiki de la communauté Ubunt
P.S. Pour les personnes venant de Google ici: Ce message permet, entre autres, de résoudre des problèmes liés à l’installation de rj dans R, avec le message d’erreur: R is not configured with full Java support. Please make sure an JDK is installed and run R CMD javareconf
. Lorsque j'ai fait cela, il était écrit: NOTE: Your JVM has a bogus Java.library.path system property!
. Donc: nul besoin de jouer avec les chemins de bibliothèque de Java! .
R CMD javareconf en tant que root
signifie, vous devez utiliser Sudo, pour émettre votre commande:
Sudo R CMD javareconf
On vous demandera votre mot de passe (votre mot de passe utilisateur normal).
La réponse de Yossiles m'a aidé en route, mais voici la version conviviale pour les débutants, qui s’appuie également sur la réponse à cette question .
Ce qui a fonctionné pour moi a été ceci: -
1) ouvrez/etc/environment dans votre txteditor préféré:
Sudo gedit /etc/environment
2) ajoutez une nouvelle ligne avec "Java_HOME" et le chemin d'accès au répertoire correct, dans le cas de Java 8, il s'agit de:
Java_HOME="/usr/lib/jvm/Java-8-Oracle/jre"
3) sourcez l’environnement mis à jour et vérifiez la variable:
source /etc/environment
echo $Java_HOME
4) mettez à jour la configuration Java-R comme ceci:
Sudo R CMD javareconf
5) installez RJava, XLConnect ou tout autre package R dépendant de Java que vous recherchez.
Oui, pdate-alternatives est le mécanisme le plus pratique link pour gérer les différentes versions de JVM, même de différents fournisseurs comme Oracle/OpenJDK. Je suis ouvert à la correction mais je dirais qu'il faut un JDK et pas seulement une JVM pour la configuration R.
Les grandes lignes de la préparation de la configuration R Java sont les suivantes:
/usr/lib/jvm
update-alternatives --install
pour chaque commande Java requise par Rupdate-alternatives --configure
pour sélectionner une machine virtuelle Java par défautPour vous assurer que le JDK se trouve déjà au bon emplacement, interrogez la liste des machines virtuelles installées à l'aide de la commande
ls /usr/lib/jvm
Si le dossier n'inclut pas de JDK, déplacez alors le dossier entier de la machine virtuelle Java du fichier tar.gz
(téléchargé) extrait vers le fichier /usr/lib/jvm
à l'aide de la commande suivante:
Sudo mv <JDK folder> /usr/lib/jvm
des entrées de terminal distinctes pour update-alternatives sont requises par R pour les commandes Java suivantes:
les entrées pour jdk1.8.0_51
sont les suivantes:
Sudo update-alternatives --install "/usr/bin/Java" "Java" "/usr/lib/jvm/jdk1.8.0_51/bin/Java" 2
Sudo update-alternatives --install "/usr/bin/jar" "jar" "/usr/lib/jvm/jdk1.8.0_51/bin/jar" 2
Sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_51/bin/javac" 2
Sudo update-alternatives --install "/usr/bin/javah" "javah" "/usr/lib/jvm/jdk1.8.0_51/bin/javah" 2
NB la sortie après l'exécution de update-alternatives --install
pour la machine virtuelle Java jdk1.8.0_51
devrait être similaire à la sortie:
update-alternatives: utilisation de /usr/lib/jvm/jdk1.8.0_51/bin/Java pour fournir/usr/bin/Java (Java) en mode automatique
sélectionner la JVM requise par défaut
Sudo update-alternatives --config Java
Si une seule machine virtuelle Java est configurée, la sortie suivante est présentée dans le terminal.
Il n'y a qu'une seule alternative dans le groupe de liens Java (fournissant/usr/bin/Java): /usr/lib/jvm/jdk1.8.0_51/bin/Java Rien à configurer.
sinon, le numéro d'entrée correspondant à la machine virtuelle requise doit être sélectionné
vérifier que la machine virtuelle Java correcte est liée
Java --version
enfin, mettez à jour la configuration R avec:
Sudo R CMD javareconf
Notez que cette configuration ne semble pas fonctionner si vous avez essayé d’autres méthodes pour "connecter" la configuration de votre machine virtuelle