Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

samedi 25 mai 2019

Les versions d'OpenJDK du dépôt Debian

Dans les versions précédentes de Debian, Debian Jessie, Debian fournissait l'OpenJDK en version 6 et 7.

Maintenant qu'on est passé à Debian Stretch et que les versions 9 et 10 du JDK sont "remplacées" par les versions 11 et 12, Debian fournit les versions 8 et 11 de l'OpenJDK.

Donc, pourvu que l'on crée le fichier suivant:

root@324a074e5614:/# cat /etc/apt/sources.list.d/backports.list 
deb http://deb.debian.org/debian stretch-backports main

On dispose des paquets suivants:

root@324a074e5614:/# apt-cache search ^openjdk-
openjdk-8-dbg - Java runtime based on OpenJDK (debugging symbols)
openjdk-8-demo - Java runtime based on OpenJDK (demos and examples)
openjdk-8-doc - OpenJDK Development Kit (JDK) documentation
openjdk-8-jdk - OpenJDK Development Kit (JDK)
openjdk-8-jdk-headless - OpenJDK Development Kit (JDK) (headless)
openjdk-8-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-8-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-8-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark
openjdk-8-source - OpenJDK Development Kit (JDK) source files
openjdk-8-jre-dcevm - Alternative VM for OpenJDK 8 with enhanced class redefinition
openjdk-11-dbg - Java runtime based on OpenJDK (debugging symbols)
openjdk-11-demo - Java runtime based on OpenJDK (demos and examples)
openjdk-11-doc - OpenJDK Development Kit (JDK) documentation
openjdk-11-jdk - OpenJDK Development Kit (JDK)
openjdk-11-jdk-headless - OpenJDK Development Kit (JDK) (headless)
openjdk-11-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-11-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-11-jre-zero - Alternative JVM for OpenJDK, using Zero
openjdk-11-source - OpenJDK Development Kit (JDK) source files
openjdk-11-jre-dcevm - Alternative VM for OpenJDK 11 with enhanced class redefinition

à savoir l'OpenJDK en version 8 et 11, décliné en JDK et JRE et pour chaque paquet, une version normale et une headless (sans GUI) ainsi que la doc et les paquets sources.

On peut donc installer l'OpenJDK avec une commande apt-get install .. et pourvu qu'on ait installé le paquet java-package on peut passer d'un JDK à l'autre avec la commande update-java-alternatives dont on a déjà parlé.

Pour ceux qui douteraient de la version que l'on peut installer:

root@8351575db5f2:/# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Server VM (build 25.212-b01, mixed mode)

C'est donc bien la dernière version du JDK 8.

root@8351575db5f2:/# java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Debian-1bpo92)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Debian-1bpo92, mixed mode, sharing)

Et il en est de même pour la version 11.

Je trouve que c'est un peu dommage de ne pas pouvoir installer le JDK 9 et 10, dans la mesure où Oracle précise bien que c'est plus compliqué de passer de Java 8 à Java 9 que de Java 9 aux versions 10, 11 et 12.

Et malheureusement, la version 12 n'est pas présente dans les dépots puisque sortie le 18 avril 2019.

On verra bien ce que ça donnera avec Debian Buster qui doit sortir prochainement, mais apparemment on n'aura "que" les versions 11 et 12. De quoi nous faire comprendre que si on est encore en Java 8 en 2019, on est à la traîne, comme si on ne le savait pas déjà !

samedi 18 mai 2019

Recevoir des notifications 'Desktop' depuis le Terminal

Quand on lance une commande qui prend du temps sous Linux, comme une compilation ou l'éxécution de tests unitaires, on est amené à aller voir périodiquement où c'en est, ce qui est un peu barbant et pas très efficace.

Il est pourtant possible d'envoyer des notifications à l'environnement graphique depuis la ligne de commande. On commnence par installer:

sudo apt-get install libnotify-bin

La commande à utiliser s'appele notify-send. Par exemple pour être notifié d'une erreur de compilation:

make || notify-send 'Compilation Failed' /home/user/sources/projects/my-project

Ce qui donne:

Notification Bureau

Le premier paramètre est le titre de la notification, ici 'Compilation Failed', le second correspond au texte qui s'affiche en dessous.

Comme il s'agit d'une erreur, on aurait dû utiliser:

make || notify-send -i error 'Compilation Failed' /home/user/sources/projects/my-project

Notification Erreur Bureau

Il est aussi possible d'afficher un message informatif, avec une ampoule comme icône, comme par exemple:

Notification Bureau (Info)

Ce qui correspond à la commande:

make || notify-send -i info 'Compilation Failed' /home/user/sources/projects/my-project

On peut également définir le temps d'affchage de la notification avec le flag -t:

make || notify-send -t 3000 -i error 'Compilation Failed' /home/user/sources/projects/my-project

Ainsi, la notification sera affichée 3 secondes à l'écran.

On voit donc qu'envoyer des notifications sur le bureau depuis la ligne de commande et vos scripts est très facile. La commande de notification pourra même être intégrée dans des alias Bash afin d'avoir une notification d'erreur chaque fois que la compilation ou les tests échouent.

dimanche 17 mars 2019

Faire cohabiter les raccourcis clavier de Linux avec ceux d'IDEA

Les raccourcis clavier permettent de gagner un temps précieux quand on les connait bien, mais encore faut-il que ceux définis par le logiciel qu'on utilise n'entrent pas en conflit avec ceux du système.

L'IDE de développement de JetBrains, IDEA, permet d'utiliser plusieurs KeyMap:

  • Default
  • Default for GNOME
  • Default for KDE
  • ...

On utilisera ici 'Default for GNOME'.

Parmi les raccourcis clavier les plus utilisés dans IDEA, on trouve:

  • Ctrl + Alt + Left: Navigate back
  • Ctrl + Alt + Right: Navigate forward

Malheureusement ces raccourcis sont déjà définis par Linux pour passer d'un espace de travail à un autre.

De même les racourcis clavier suivants d'IntelliJ IDEA:

  • Alt + F7: Find usages
  • Ctrl + Alt + L: Reformat code
  • Alt + F8: Evaluate expression

sont utilisés respectivement par Linux pour les actions suivantes:

  • Move window
  • Lock screen
  • Resize window

Comme je passe le plus clair de mon temps avec IDEA, j'ai changé les raccourcis Linux cités ci-dessus en leur ajoutant la touche Shift, ce qui donne par exemple:

  • Ctrl + Alt + Shift + L: Lock screen

Cela fait certes un peu de gymnastique avant d'aller déjeuner, mais au moins je n'ai pas changé la configuration d'IDEA.

Mais ce n'est pas fini !

Le raccourci Ctrl + Alt +T qui permet de lancer un Terminal sous Linux est aussi défini par IDEA. Je désactive donc le raccourci d'IDEA que ne n'utilise pas.

Un autre. IDEA définit Ctrl + E pour accéder à la liste des fichiers récents. Mais ce raccourci permet aussi d'aller à la fin de la ligne dans une session Bash !!! Donc si vous ouvrez un Terminal dans IntelliJ, Ctrl + E affiche les fichiers récents au lieu d'aller à la fin de la ligne de commande. Pour celui-ci, j'ajoute Shift sur le raccourci d'IDEA.

Un dernier, et qui n'a rien à voir avec IDEA, c'est Alt + F, qui permet d'avancer d'un mot en Bash, se trouve désactivé par défaut par la configuration du menu fichier de la fenête des Terminaux Mate. Je modifie donc ce paramètre pour pouvoir utiliser pleinement les raccourcis Bash:

Capture-Raccourcis_clavier.png

- page 1 de 56