web-dev-qa-db-fra.com

installation et configuration correctes de openJDK et R

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!

7
Marco

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.

6
yossile

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! .

5
Adam Ryczkowski

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).

2
user unknown

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.

0
emilBeBri

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:

  1. assurez-vous que la machine virtuelle Java requise est correctement située dans /usr/lib/jvm
  2. configurez le lien en utilisant update-alternatives --install pour chaque commande Java requise par R
  3. utilisez update-alternatives --configure pour sélectionner une machine virtuelle Java par défaut
  4. actualiser la configuration R

Pour 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:

  • interpréteur: '/ usr/bin/Java'
  • archiveur: '/ usr/bin/jar'
  • compilateur: '/ usr/bin/javac'
  • préparation de l'en-tête: '/ usr/bin/javah'

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

0
TrevorL