Table des matières

, ,

Mise à niveau

Chaque application utilisée sur un système connecté au monde (par Internet ou par l'intermédiaire de fichiers externes, clé USB, etc.) a besoin, pour rester fiable et sûre, d'être régulièrement mise à jour. Cependant les mises à jour ne sont pas toujours rétro-compatibles, et peuvent modifier voire supprimer des fonctionnalités existantes. Si il s'agit de logiciel importants ou centraux, le système entier peut dans ce cas dysfonctionner.

Chaque distribution Linux essaie de subvenir à cette problématique à sa façon.
Ubuntu est une distribution dite point release (par opposition par exemple au modèle de distribution continu rolling release de Arch ou Solus).

Ainsi chaque version majeure des logiciels importants est gelée périodiquement (tous les 2 ans pour les versions LTS d'Ubuntu) afin de pouvoir tester profondément sa fiabilité et son comportement avec le reste du système, avant de rendre cette version d'Ubuntu publique. Canonical distribue alors une version "figée" d'Ubuntu, dont les mises à jour ordinaires ne concernent que des corrections et de petites modifications (on dit qu'il s'agit de versions mineures).

La mise à niveau consiste à migrer son système Ubuntu d'une de ces versions figées à la suivante (saut cas spécifique on recommande généralement d'utiliser seulement les versions LTS d'Ubuntu).

Mise à niveau, mise à jour, et migration

Sur Ubuntu on préfère parler de mise à niveau (upgrade en anglais) que de mise à jour majeure (major update), afin d'éviter la confusion entre mise à niveau et mise à jour (ça peut ne pas être le cas dans d'autres contextes informatiques).

Ainsi la mise à niveau est à différencier d'une simple mise à jour.

Mise à niveau en mode graphique

Avant de lancer une mise à niveau, assurez-vous d'avoir une sauvegarde à jour, complète et fonctionnelle !

N'hésitez pas non plus à consulter la FAQ sur la mise à niveau !

Par défaut dans les paramètres, le gestionnaire de mise à jour vérifie quotidiennement la présence de mises à jour ou la disponibilité d'une nouvelle version d'Ubuntu.

Si le gestionnaire de mise à jour se lance automatiquement, vous pouvez accepter la proposition de mise à niveau et suivre les instructions.

Ou bien, vous pouvez lancer manuellement le gestionnaire de mise à jour via la commande :

update-manager

Mise à niveau en ligne de commande

L'outil en ligne de commande do-release-upgrade permet d'effectuer une mise à niveau d'Ubuntu sans utiliser d'utilitaire graphique. Il est particulièrement pertinent pour les serveurs, qui fonctionnent sans interface graphique. L'ensemble des options de cet outil peut être lu en exécutant la commande :

do-release-upgrade --help

Voici quelques-unes des options les plus utiles :

L'option --sandbox semble ne plus être proposée sous 20.04 et 22.04

Sans option, l'outil do-release-upgrade recherche et procède à une mise à niveau vers la prochaine version LTS ou stable disponible, si elle existe.

Mise à niveau vers une version de développement
Les options suivantes permettent de vérifier l'existence d'une nouvelle version de développement et de procéder à la mise à niveau vers celle-ci. Elles ne devraient être utilisées que dans des environnements de développement, puisqu'elles peuvent être instables et contenir des bogues.
  • do-release-upgrade --check-dist-upgrade-only --devel-release

    Le couple d'options --check-dist-upgrade-only et --devel-release vérifie l'existence d'une nouvelle version de développement. Si une nouvelle version de développement est trouvée, celle-ci est affichée en résultat dans le terminal. Exécutée ainsi, cette commande n'effectue qu'une vérification ; aucune mise à niveau n'est faite.

  • do-release-upgrade --devel-release

    L'option --devel-release recherche et procède à une mise à niveau vers la prochaine version de développement disponible, si elle existe.

via SSH

Lancer une migration via SSH peut se révéler périlleux en cas de problème. Ceci dit, c'est tout à fait possible (et souvent la seule méthode disponible).

Le script de mise à niveau va alors créer un serveur SSH additionnel écoutant sur le port TCP 1022 (en plus du serveur SSH sur lequel vous êtes connecté). Attention à vos règles de pare-feu qui pourraient bloquer ce port.

Le script sera lancé dans un screen : il sera possible de retrouver son terminal en l'état et donc de continuer la mise à niveau en cas de déconnexion.

Rechercher uniquement des versions LTS

L'outil do-release-upgrade se base sur la politique de mise à niveau telle que définie dans votre fichier /etc/update-manager/release-upgrades. La variable Prompt, en fin de fichier, indique si seules les versions LTS doivent être recherchées ou si toutes les versions (LTS et régulières) doivent être recherchées.

Vous ne devez sélectionner le mode Prompt=lts que si votre version actuelle d'Ubuntu est une version LTS. Autrement, aucune nouvelle version ne sera détectée par do-release-upgrade.

Si vous choisissez de rechercher les versions LTS uniquement, il ne vous sera pas proposé de passer à la LTS+1 suivante dès sa sortie (par exemple un upgrade de la 12.04.4 LTS vers la 14.04 LTS n'aboutira pas) :

user@machine:~$ sudo do-release-upgrade
Recherche d'une nouvelle version d'Ubuntu
Aucune nouvelle version trouvée

C'est normal ! Il faudra attendre la version LTS+1.1 (14.04.1 par exemple) qui est la première grosse mise à jours corrective et qui est généralement annoncée 3 mois après la sortie de la LTS.
Si vous avez vraiment besoin de mettre à niveau vers la nouvelle LTS, vous pouvez utiliser (à vos risques et périls) l'option -d (--devel-release) signifiant une migration vers la prochaine version en développement) à condition d'être déjà sur une LTS et d'avoir choisi Prompt=lts.
N'hésitez pas à utiliser l'option -c (--check-dist-upgrade-only) en conjonction de -d pour vérifier que vous allez bien migrer vers la version voulue.

Guides spécifiques

Versions non soutenues (obsolètes, fin de vie)

La migration vers une version obsolète d'Ubuntu n'est pas possible. Sauvegarder vos données et installer une version encore soutenue est la seule procédure recommandée.
Les dépôts des vieilles versions n'étant plus supportées (comme 17.10, 18.10 et 19.04) ont été déplacés vers un serveur d'archive. Aussi, il faudra modifier la liste des dépôts : voir cette page.

Migrer en douceur via dual-boot

Le dual boot permettrait de passer progressivement d'une version à une autre :

Selon certains avis, cette méthode serait chronophage, gourmande en espace, et inutilement complexe à partir du moment où on possède une sauvegarde fiable et complète de ses données – ce qui devrait toujours être le cas !

Et ensuite

La commande uname -mr permet de visualiser quel noyau est actif actuellement.

Lorsque la mise à niveau est terminée, il reste encore a nettoyer le système, tout n'est pas fait automatiquement.
La 1ere chose à faire est de redémarrer l'ordinateur afin de vérifier que le nouveau noyau prend bien en compte tout votre matériel et qu'il n'y a pas eu de régression.

Après le redémarrage, si vous repassez la commande uname -mr vous devriez vois que le noyau actif a changé.

Vérifiez bien que tout votre matériel fonctionne : WiFi, bluetooth, etc.

Nettoyage des paquets devenus inutiles

Certains paquets ne sont plus utiles, mais sont toujours installés sur votre système, pour les supprimer :

sudo apt autoremove --purge

Pour supprimer les résidus de configuration de ces paquets (et ceux modifiés lors de la migration) :

sudo apt purge ~c

Les noyaux

La mise à niveau ne gère pas la suppression des anciens noyaux directement. Si il y avait un problème avec le nouveau noyau, le cas contraire pourrait être problématique.

Cependant, après une période de test de quelques jours, les anciens noyaux peuvent être supprimés pour libérer de l'espace. Cela se fait manuellement.

Dépôts annexes

Si vous aviez des dépôts tiers, ils ont été désactivés.

Comme recommandé sur cette page, vous avez donc vérifié que les logiciels que vous utilisez par l'intermédiaire de ces dépôts sont disponibles sur la nouvelle version d'Ubuntu.

N'hésitez pas à vérifier l'existence de ces applications en version snap ou Flatpak, plus sûres et plus pratiques que les PPA historiques.

Pour les réutiliser il faut éditer les sources de ces dépôts pour les "assortir" à la nouvelle version d'Ubuntu, en remplaçant les noms de l'ancienne version d'Ubuntu par celui de la nouvelle.
Par exemple si vous étiez sur Jammy (22.04 LTS) et que vous venez de faire la mise à niveau vers Noble (24.04 LTS), il faut remplacer toutes les occurrences de jammy par noble dans tous les fichiers *.sources ou *.list.

Vérifiez ensuite avec :

sudo apt update

qu'il n'y a pas d'erreur.

Notez qu'à partir de la version 23.10, une option permet de les faire participer à migration : --allow-third-party.

Problèmes courants

Fichier système modifié manuellement

Dans le cas où un fichier système (généralement un fichier de configuration) a été modifié manuellement, la mise à niveau le détecte afin d'éviter de les écraser et les perdre, et vous demande ce que vous souhaitez faire de ces modifications.

Cette demande est du type :

Fichier de configuration « /xxxxx/yyyyy/zzzzz »
 ==> Modifié (par vous ou par un script) depuis l'installation.
 ==> Le distributeur du paquet a fourni une version mise à jour.
   Que voulez-vous faire ? Vos options sont les suivantes :
    Y ou I  : installer la version du responsable du paquet
    N ou O  : garder votre version actuellement installée
      D     : afficher les différences entre les versions
      Z     : suspendre ce processus pour examiner la situation
 L'action par défaut garde votre version actuelle.

La réponse Y/I est souvent préférable à la réponse N/O. Il sera toujours possible de remettre les modifications si elles sont encore nécessaire, et on est assuré du bon fonctionnement général du système.

FIXME Nous sommes naturellement tentés de répondre D ou Z. Dans les deux cas, la façon de continuer l'installation pour choisir Y/I ou N/O n'est toujours pas proposée. Cela va donc se terminer par un abandon de l'installation avec nécessité de la prendre tel qu'indiqué ci-dessous.

Généralement un répertoire est prévu permettant d'éviter ce genre de problème et de conserver les configurations personnelles d'une version d'Ubuntu à l'autre. Son nom est souvent du type conf.dconf est le nom du service.

Mise à niveau interrompue ou défectueuse

Pendant la mise à niveau de nombreux incidents peuvent survenir : une coupure de courant, plus d'accès au serveur de mise à jour ou encore le petit dernier qui débranche la prise électrique. On peut ainsi se retrouver avec une mise à niveau incomplète ou des dépendances non satisfaites.

En cas de problème mineur de dépendances, booter avec un ancien noyau, puis tentez les commandes :

sudo dpkg --configure -a

puis :

sudo apt -f install
sudo apt update
sudo apt upgrade

FIXME La commande qui suit semble ne plus prendre en compte le -a. à vérifier. Si votre mise à niveau ne s'est pas terminée ou qu'un souci majeur est intervenu, vous pouvez utiliser la commande dpkg-reconfigure :

sudo dpkg-reconfigure -phigh

Cette commande aura pour effet de réinstaller et reconfigurer les paquets de la mise à niveau. Notez qu'elle peut durer un certain temps, parfois une heure.

Voir aussi