Debian peut mieux faire

Le hasard fait bien les choses à ce qu’on dit. Justement cette semaine j’ai eu l’occasion de trouver 3 fois Debian perfectible.

Les noyaus HWE chez Ubuntu

La particularité d’un noyau Ubuntu LTS Server est de très peu évoluer (favorisant la stabilité) avec uniquement des correctifs de sécurité apportés. L’objectif des noyaux HWE est de permettre d’assurer la prise en charge de nouvelles plates-formes et de nouveaux composants matériels nécessitant des fonctionnalités fournies par un noyau plus récent.

Concrètement Ubuntu 20.04 LTS en version Server fournit un noyau 5.4. Si j’ai besoin d’une fonctionnalité par exemple pour une carte réseau sortie récemment, comment faire ? Ubuntu propose LTS Enablement Stack (aussi appelé HWE ou Hardware Enablement) et Rolling LTS Enablement Stack.

sudo apt update && sudo apt install --install-recommends linux-generic-hwe-20.04

On passe alors à un noyau 5.8. Vous pouvez comparer les noyaux linux-generic et linux-generic-hwe-* disponibles ici.

Le graphique ci-dessous pour Ubuntu 18.04 LTS montre bien le fonctionnement et l’intérêt. Aujourd’hui le paquet linux-generic-hwe-18.04 permet d’avoir un noyau 5.4 à la place du 4.15 sur Ubuntu 18.04 LTS Server sans modifier le fichier sources.list.

Cliquez pour agrandir.

Un bon exemple et retour sur le sujet (petite coquille de sa part sudo apt install --install-recommends linux-generic-hwe-20.04 => linux-generic-hwe-18.04).

Une nouvelle version de Debian sort « quand elle est prête » environ tous les 2 ans et demi actuellement. Un tel paquet/noyau n’existe pas chez Debian, les solutions restantes sont donc principalement la compilation d’un noyau plus récent ou plus probablement l’ajout de buster-backports dans sources.list.

Installer une version précédente d’un paquet

J’utilise Pidgin pour nos conversations via messagerie instantanée au boulot, une nouvelle version 2.14.1-1 est sortie le 04/02 pour Debian Testing. Inutilisable, connexion puis déconnexion au bout de quelques secondes.

La situation est critique, je ne peux pas échanger avec mes collègues, mon principal outil de communication est out. Je trouve rapidement que le souci vient de la mise à jour de Pidgin, le mode debug ne donne rien, des recherches sur ce bug non plus, rien ne me convient comme client XMPP alternatif, je choisis de downgrade (revenir sur la version précédente).

La mise à jour datant du 04/02, on se rend sur http://snapshot.debian.org/archive/debian/?year=2021;month=02 et on choisit une date antérieure.

sudo nano /etc/apt/sources.list.d/snapshot.list
deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20210203T203559Z/ testing main contrib non-free # ou https://snapshot.debian.org/archive/debian/20210204T000000Z/

sudo nano /etc/apt/preferences.d/snapshot.pref
Package: libpurple0 libpurple-bin pidgin pidgin-data
Pin: origin snapshot.debian.org
Pin-Priority: 1001

sudo apt update; apt policy
sudo apt install pidgin=2.13.0-3 pidgin-data=2.13.0-3 libpurple0=2.13.0-3 libpurple-bin=2.13.0-3

Je vous invite à lire les explications (If there is no import at the exact time you specified you will get the latest available timestamp which is before the time you specified) et cet article.

Cette solution pour utiliser une version précédente d’un paquet est satisfaisante mais loin d’être simple et connue. La question que je me pose, pourquoi ne pas proposer dans les dépôts les paquets en version N et N-1 ? On aurait ainsi seulement à lancer sudo apt install pidgin=2.13.0-3 pidgin-data=2.13.0-3 libpurple0=2.13.0-3 libpurple-bin=2.13.0-3. Bien que j’imagine aisément que des problèmes de dépendances se posent, leurs résolutions ne me semble pas impossible.

Régression de grub-pc sur Debian 10.8

Le problème est bien expliqué sur ce bugreport. Debian 10.8 vient avec une mise à jour de grub-pc, il est demandé à l’utilisateur de renseigner le disque où installer Grub en mode interactif.

En entreprise et au-dessus d’un certain nombre de serveurs, on applique les mises à jour en mode non-interactif. Tout le monde comprend aisément qu’il n’est pas envisageable de renseigner le disque en se connectant sur chaque serveur parmi des centaines/milliers.

Le mainteneur de grub-pc expose son point de vue : « Sacrificing noninteractivity in this case was intentional: the eventual consequences of this particular configuration being wrong can often be an unbootable system, due to the GRUB core image and modules getting out of sync. It’s better to refuse the upgrade and make people sort it out while they can do so reasonably conveniently, rather than having to rescue an unbootable system (or a fleet of such systems!) manually ». En gros il estime qu’il est plus indiqué de casser la non-interactivité pour forcer l’utilisateur à renseigner le disque car la conséquence d’un autre choix pourrait mener à un système qui ne boote pas.

Je suis plutôt d’accord avec lui, pour autant au boulot nous sommes dans la situation compliquée où il ne sera pas possible de faire la mise à jour à la mano de chaque serveur. Il est probable qu’un script avec debconf pourra résoudre le souci. Cependant et là où je donne finalement tort au mainteneur, qu’il pousse ce fonctionnement ok mais pas dans une version stable lors d’une mise à jour ET sur un paquet aussi sensible que Grub. Ce changement casse de manière trop importante le processus de mises à jour qui devrait être ennuyeux et sans aucune (mauvaise) surprise. Cette modification devrait être proposée lors de la sortie de Debian 11.

Il s’agit de mon point de vue personnel, je n’ai pas davantage raison que le mainteneur, chacun a ses arguments. Je constate que la mise à jour Debian 10.8 qui s’annonçait comme une formalité va nous demander de qualifier une solution (script) avec un risque important (serveur qui ne booterait pas). Rien d’une distribution stable pour moi.

Interroger et remettre en cause

Ces 3 sujets sont tous différents mais ont le mérite d’interroger nos usages, montrer les détails de fonctionnement autour de Debian. J’espère que l’article vous aura intéressé, l’utilisateur averti connaît ses outils et sait les remettre en cause.

Déjà 8 avis pertinents dans Debian peut mieux faire

  • Hello!

    Autant pour le grub, j’admet que ce n’est pas exceptionnel mais pour le reste, je suis un peu dubitatif. Choisir debian sid pour travailler relève d’une choix initialement mauvais je pense. Si tu veux un pidgin qui fonctionne tout le temps, installe debian stable et si tu veux une version plus à jour, soit c’est backporté, soit tu peux essayer flatpak ou une AppImage. Je fonctionne comme ça et à titre personnel, ça me convient et je n’ai jamais eu de mauvaise surprise.

  • bendia
    Salut :)

    Samedi soir, s’est tenu une « rencontre » informelle entre membre du forum Debian-Facile et de de Debian-France, dont son Président, qui est aussi développeur Debian.

    Il nous a rappelé que Debian, c’était pas loin de 60 000 paquets pour seulement un millier de développeurs actifs, et qu’il lui semblait voir ralentir depuis 4/5 ans le rythme d’arrivée de nouveaux développeurs.

    Bref, Debian manque de « bras » plus que de tout autre chose ;)

    P.S. le compte rendu de la rencontre si d’aucun sont intéressés https://debian-facile.org/viewtopic.php?pid=354450#p354450

  • ce que je voulais partager était que Debian Stable fournit des paquets qui sont testés et qui sont mis à jour pour corriger des bugs et des problèmes de sécurité. Autrement dit, il ne doit pas avoir de régression suite à une mise à jour.
    Du coup, passer à Debian testing ou à Debian SID est un choix qui implique une forte probabilité d’avoir une panne lors d’une mise à jour et on ne peut pas le reprocher à Debian :)

    Je comprend tout à fait l’envie d’avoir des paquets plus à jour. De mon coté j’ai décidé de rester sur debian stable et d’utiliser flapak ou appimage si j’en ressens le besoin. Dans le pire des cas je compile ou je m’arrête à la version packagée.

  • Laurent Le Poittevin
    Intéressant l’article mais il y un point qui me gêne un peu. Je suis utilisateur d’Ubuntu 20.04 la lts, qui vient avec le noyau Hwe 5.8. Je trouve dommage qu’une version lts quitte un noyau lts 5.4, surtout qu’en cela entraîne des bugs de jeunesse dans le kernel. Ça conduit très vite à un système instable. A voir, pourquoi pas offrir cette possibilité pour ce qui utilise un matériel récent mais avec un warning, pas par défaut, quand on voit ubuntu faire ça par défaut, y a juste à voir la liste de messages d’utilisateurs novices pour ce rendre compte du problème. Mais c’est vrai qu’un bug ça arrive aussi en lts, mais c’est plus rare.

Les commentaires sont fermés.