Mise à jour de Java (Sun/Oracle) sur Ubuntu Lucid

Motif

Avec l'année 2012, les conditions d'utilisation de Java ont changé et une mise à jour est devenue nécessaire.

En octobre 2011, Oracle a publié une alerte de sécurité et fortement recommandé aux utilisateurs de procédér aux mises à jour. Le calendrier des mises à jour critiques alors anoncé était le suivant : 14 février 2012, 12 juin 2012 et 16 Octobre 2012. Dans le même temps, Canonical a fait paraitre une note importante commentant le risque associé, annonçant la cessation de distribution des paquets Oracle en raison d'un changement des licences d'Oracle et informant les utilisateurs qu'ils avaient le choix entre deux solutions :

Sur la configuration utilisée, Firefox (version 11) connait un plantage magistral avec le plugin IcedTea fourni par Ubuntu en standard. Par ailleurs, Chrome se plaint que le plugin Java Sun/Oracle n'est pas à jour. Il s'agit donc de disposer d'une version à jour de ces logiciels.

L'histoire ne s'arrête pas là car, au deuxième semestre 2012, une nouvelle faille critique fait parler d'elle, suffisamment grave pour que Firefox prenne l'initiative de désactiver le module Java. Oracle la décrit dans une alerte de sécurité et sort une nouvelle mise à jour. Cette mise à jour 7 de la version 7 est disponible sur son site sous la forme d'un paquet rpm ou d'une boule tar. Oracle signale aussi plusieurs options d'installation pour Ubuntu, mais une solution plus simple, décrite au bas de cette page, est dorénavant possible.

Configuration initiale

Avant tout, un petit tour du système permet de se rendre compte que, au fil des ans, l'utilisation du système a conduit à installer plusieurs versions de java. Ainsi, le répertoire /usr/lib/jvm contient 3 versions ; sa structure est la suivante :

Dans un terminal, la commande echo $JAVA_HOME renvoie une chaîne vide mais la commande :

java -version

renvoie :

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)

et la commande :

ControlPanel

affiche le panneau de configuration Java dont l'onglet Java :

panneau de configuration Java

indique que c'est bien la version "sun" qui est activée sur le système.

Mise à jour manuelle en 6.0u31 (avril 2012)

La mise à jour est effectuée par les étapes suivantes.

A la console, ces étapes se réalisent comme suit (adapter le nom du binaire à la version en cours) :

sudo cp jre-6u31-linux-i586.bin /usr/lib/jvm/

cd /usr/lib/jvm/

ls

java-1.5.0-gcj-4.4 java-6-openjdk java-6-sun-1.6.0.26
java-1.6.0-openjdk java-6-sun jre-6u31-linux-i586.bin

sudo chmod +x jre-6u31-linux-i586.bin

cela produit une longue réponse détaillant la décompression qui se termine par :

[...]
Creating jre1.6.0_31/lib/rt.jar
Creating jre1.6.0_31/lib/jsse.jar
Creating jre1.6.0_31/lib/charsets.jar
Creating jre1.6.0_31/lib/ext/localedata.jar
Creating jre1.6.0_31/lib/plugin.jar
Creating jre1.6.0_31/lib/javaws.jar
Creating jre1.6.0_31/lib/deploy.jar
Done.

ControlPanel

Dans la fenêtre ouverte par la commande précédente, cliquer sur l'onglet Java puis, dans cet onglet, sur le bouton afficher. Dans la nouvelle boîte qui s'ouvre, cliquer sur rechercher. Dans la fenêtre "Sélecteur" qui s'ouvre, cliquer sur Suivant puis choisir le chemin /usr et lancer la recherche. Au bout de quelques minutes, la liste des versions installées s'affiche. Choisir la nouvelle puis cliquer sur Terminer. boite selecteur JRE

La nouvelle version apparaît alors dans la fenêtre "Paramètres de Java Runtime Environment". Dans la colonne "Activée, décocher l'ancienne version et vérifier que la nouvelle est bien cochée puis cliquer sur OK. boite parametres JRE

Pour le besoin de Firefox et Chrome, il faut encore créer un dossier ~/.mozilla/plugins et, dedans, un lien vers le plugin à utiliser par :

mkdir ~/.mozilla/plugins

ln -s /usr/lib/jvm/jre1.6.0_31/lib/i386/libnpjp2.so ~/.mozilla/plugins

Dans mon cas, le dossier et le lien existent déjà. Le lien pointe vers le fichier suivant : /usr/lib/jvm/java-6-sun/jre/lib/i386/libnpjp2.so où java-6-sun est en fait un lien symbolique vers l'ancienne version. Pour assurer la compatibilité avec les éventuelles anciennes liaisons établies de cette manière, je supprime ce lien, je crée un dossier vide java-6-sun et j'y place un lien symbolique nommé jre vers le nouveau dossier produit par l'installation. Ainsi, cette opération ne sera plus à répéter lors des prochaines mises à jour manuelles.
lien jre

Après fermeture et ré-ouverture, Firefox affiche bien, dans "about:plugins", le résultat souhaité.
about plugins
et le test en vraie grandeur confirme :
test java
et Chrome donne le même message de satisfaction sans manipulation supplémentaire.

Enfin, il est possible de constater que l'onglet "Système" du panneau de configuration Java (Afficher...) s'est mis à jour automatiquement pour prendre en compte la dernière version :
parametres JRE systeme

Mise à jour par Synaptic en 7.0u07 (septembre 2012)

Pour qui a seulement besoin d'exécuter des applications JAVA et d'installer l'environnement d'exécution JRE (Java Runtime Environment), il suffit d'installer le paquet update-sun-jre.
paquet update-sun-jre dans synaptic

L'installation de ce paquet effectue en fait la désinstallation de l'ancienne version (cela prend quelques minutes) puis l'installation de la nouvelle, y compris les extensions pour la navigation internet.

Il est tout de suite possible de vérifier la bonne installation dans la navigateur internet :
test java 7u07 dans firefox

A ce stade, le panneau de contrôle de Java montre seulement la version 7.07 activée pour le système :
onglet systeme du panneau java
mais fait encore apparaitre la version 6u31 dans l'onglet utilisateur :
onglet systeme du panneau java,
il reste donc à la désactiver :
onglet systeme du panneau java

Lors des prochaines évolutions de Java, il suffira de réinstaller le même paquet par Synaptic.


Retour à l'accueil LINUX