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.
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 :
indique que c'est bien la version "sun" qui est activée sur le système.
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.
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.
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.
Après fermeture et ré-ouverture, Firefox affiche bien, dans "about:plugins", le résultat souhaité.
et le test en vraie grandeur confirme :
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 :
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.
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 :
A ce stade, le panneau de contrôle de Java montre seulement la version 7.07 activée pour le système :
mais fait encore apparaitre la version 6u31 dans l'onglet utilisateur :
,
il reste donc à la désactiver :
Lors des prochaines évolutions de Java, il suffira de réinstaller le même paquet par Synaptic.