Mise à jour du noyau

De Asso Val Libre
Aller à : navigation, rechercher

J'en profite pour écrire ce qu'en fait j'ai capté assez récemment sur les mises à jour noyaux (m'étais jamais vraiment posé la question avant ;-)

En simplifiant un peu

  • le noyau version 1.2.3 est fourni par un paquet dénommé noyau-1.2.3
  • le noyau version 1.2.4 .................... noyau-1.2.4 (!!)
  • IMPORTANT : ce ne sont que des noms de paquets, ce ne sont pas des _versions_, pour le système, noyau-1.2.4 n'est pas la version suivante de noyau-1.2.3 (c'est seulement dans notre tête ;-)
  • donc pas moyen de mettre à jour (monter la version du noyau) du noyau-1.2.3 vers noyau-1.2.4 !! En l'état, il n'est pas possible de faire des mises à jour "spontanée"/automatique du noyau. Le système ne peut "pousser" de lui-même l'installation de la version 1.2.4 du noyau contenu dans un paquet dénommé noyau-1.2.4

Il faut nécessairement passer par une mise à jour d'un paquet. Le déclenchement de la mise à jour d'un paquet ne se base donc pas sur son nom, mais sur la version du paquet. Pour un même nom de paquet, le système sait gérer des versions successives du-dit paquet.

Exemple : apt-cache policy libc6 On voit que [le _nom_] libc6 est fourni en version 2.32 2.31 2.27...

 Installé : 2.32-0ubuntu3
 Candidat : 2.32-0ubuntu3
 Table de version :
*** 2.32-0ubuntu3 500
    2.31-0ubuntu9 990
    2.27-3ubuntu1 500
NB : Il n'existe pas de paquet dénommés libc6-2.32 ou libc6-2.31


Pour mettre à jour le noyau, on utilise donc un paquet "générique" dénommé linux-image-generic dont chaque version successive va servir à exprimer une dépendance vers un noyau de nom donné (et donc, de version donnée).

apt-cache policy linux-image-generic
linux-image-generic:
    5.8.0.43.48 500
    5.8.0.25.30 500
    5.4.0.26.32 990
    4.15.0.20.23 500

C'est la mise à jour automatique des _versions_ du paquet linux-image-generic qui génère la mise à jour des versions du noyau. Cela dispense également d'avoir à connaître les noms et numéros de noyaux...

Conclusions

  • Il faut bien percevoir la double dimension des "versions". D'une part la version d'un logiciel contenu _dans_ un paquet portant un nom généralement explicite (mais «nom n'est pas version»). D'autre part les versions successives d'un paquet deb,
  • C'est l'installation (standard) du paquet linux-image-generic qui permet au système de mettre à jour automatiquement le noyau en procédant à la mise à jour de la version paquet de linux-image-generic.
  • Pour stopper ces mises à jour automatiques, il faut simplement retirer ce (type de) paquet 'generic'.
  • Attention, ceci est une simplification il y en fait d'autres paquets analogues concernés (linux-header-generic, linux-module-generic, etc)
  • Ce même principe est utilisé pour d'autres mises à jour centrales (e.g. gcc [aka gcc-generic] pour gcc-8, gcc-9, ...)