Ubuntu Server / do-release-upgrade / Mettre à niveau la version d’Ubuntu

Pour passer Ubuntu Server à la version suivante du système, utilisez sudo do-release-upgrade. Mettez d’abord complètement à jour la version actuelle, vérifiez le parcours de mise à niveau pris en charge et préparez une sauvegarde restaurable.

Mises à jour des paquets et mise à niveau du système

do-release-upgrade fait évoluer les paquets de base et la configuration système vers la version suivante d’Ubuntu. Son rôle diffère de celui d’apt update, qui actualise les listes de paquets, et d’apt upgrade, qui met à jour les paquets de la version actuelle. Pour la gestion courante, consultez le guide apt pour Ubuntu Server.

Les versions LTS (Long Term Support, support à long terme) se mettent à niveau vers la LTS immédiatement suivante. Par exemple, pour passer de 22.04 LTS à 26.04 LTS, il faut passer par 24.04 LTS et vérifier le fonctionnement à chaque étape. Ne remplacez pas globalement les noms de code des dépôts pour sauter une version. Les parcours et durées de support figurent dans le cycle des versions Ubuntu.

Une nouvelle LTS n’est pas proposée immédiatement à tous les serveurs existants. Les mises à niveau entre LTS sont généralement ouvertes après la première version ponctuelle ; vérifiez l’offre réelle avec l’outil. Pour une version dont le support est terminé, prévoyez une stratégie distincte de récupération ou de migration, sans supposer que cette procédure s’applique telle quelle.

Préparer les sauvegardes et l’accès de secours

Planifiez une interruption du service et utilisez un compte disposant des droits d’administration. Lisez les notes de publication de la version cible et les conditions de support de vos applications. Le démarrage du serveur Web ne garantit pas le bon fonctionnement de PHP, de la base de données et des extensions.

  • Sauvegardes : conservez les données, les bases de données, la configuration sous /etc, les certificats et les secrets nécessaires à la restauration dans un emplacement séparé et sécurisé. Utilisez une méthode de sauvegarde cohérente adaptée à la base de données et vérifiez la restauration. Un simple instantané d’une machine virtuelle en cours d’exécution ne garantit pas la cohérence de la base.
  • Accès de secours : préparez et testez une console physique, d’administration distante ou série cloud, utilisable si SSH (Secure Shell) se déconnecte. Même pour une mise à niveau par SSH, ne dépendez pas de ce seul accès pour récupérer le serveur.
  • Conditions du cloud : vérifiez les exigences du fournisseur concernant l’image, le noyau, le démarrage et les agents de gestion. Les serveurs cloud n’interdisent pas tous les mises à niveau sur place. Si la restauration est difficile ou si la compatibilité exige des essais préalables, comparez aussi la création d’un nouveau serveur avec migration des données.

Ces commandes examinent la version actuelle, l’espace et les inodes disponibles, les états incomplets des paquets et les paquets bloqués. Elles ne lancent pas la mise à niveau.

cat /etc/os-release
uname -r
df -h / /boot
df -i / /boot
sudo dpkg --audit
apt-mark showhold

Notez VERSION_ID et résolvez d’abord les problèmes d’espace sur / et /boot. Les besoins dépendent de l’installation et des changements prévus. Analysez les problèmes signalés par dpkg --audit et comprenez la raison des blocages de paquets avant de les modifier. Ne levez pas tous les blocages pour contourner les vérifications.

Mettre à jour la version actuelle et vérifier la politique

  1. Actualisez les listes de paquets de la version actuelle, puis appliquez toutes les mises à jour. Ces commandes de préparation sont indiquées dans la procédure officielle Ubuntu Server.
sudo apt update
sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true

dist-upgrade ajuste les dépendances à partir des dépôts configurés et peut supprimer des paquets. Lisez le plan et arrêtez-vous si des paquets importants doivent être supprimés de façon inattendue. L’option inclut les mises à jour à déploiement progressif ; cette commande ne change pas elle-même la version d’Ubuntu. Vérifiez que les deux commandes réussissent et qu’aucune mise à jour ne reste à appliquer.

  1. Vérifiez si /run/reboot-required existe. Sa présence signifie qu’un redémarrage est nécessaire pour terminer les mises à jour actuelles.
if [ -f /run/reboot-required ]; then
    cat /run/reboot-required
fi

Si nécessaire, exécutez sudo reboot pendant la maintenance, reconnectez-vous et contrôlez les services avant de continuer. L’absence du fichier ne signifie pas que les applications ont été validées.

  1. Si do-release-upgrade est absent, installez le paquet qui le fournit, puis consultez la politique de notification des versions.
sudo apt install ubuntu-release-upgrader-core
cat /etc/update-manager/release-upgrades

Vous pouvez omettre l’installation si la commande est déjà disponible. Pour rester sur le parcours LTS, utilisez Prompt=lts dans le fichier de configuration. Prompt=normal recherche aussi les versions intermédiaires ; il ne permet pas de sauter des versions. Avant de modifier le fichier, sauvegardez-le sous un autre nom, puis éditez uniquement le paramètre concerné avec sudoedit /etc/update-manager/release-upgrades. Consultez le guide Ubuntu des versions LTS et intermédiaires pour la distinction.

Vérifier la cible et lancer la mise à niveau

Commencez par vérifier si une mise à niveau est disponible. L’option -c vérifie puis quitte sans lancer l’opération ; elle ne teste pas la compatibilité des applications.

sudo do-release-upgrade -c

Si aucune cible n’est proposée, contrôlez la version actuelle, le parcours autorisé, Prompt, les mises à jour restantes, le réseau et l’ouverture des mises à niveau. Dans le manuel de do-release-upgrade, -d recherche une version de développement et peut aussi servir à évaluer une nouvelle LTS avant sa première version ponctuelle. Ne l’ajoutez pas systématiquement sur un serveur de production pour contourner un message indiquant qu’aucune nouvelle version n’est disponible.

Lorsque sauvegardes et accès de secours sont prêts et que la cible proposée correspond au plan, lancez la commande suivante. N’ajoutez pas d’option d’approbation automatique et restez disponible pour répondre aux questions.

sudo do-release-upgrade
  • Résumé des changements : vérifiez la cible, les paquets à supprimer ou installer, le téléchargement et l’espace nécessaire. Si un service essentiel doit être supprimé ou si le plan est inattendu, arrêtez-vous avant l’approbation et analysez la cause. Une fois l’installation des paquets commencée, ne tuez pas le processus et n’éteignez pas le serveur.
  • Fichiers de configuration : comparez le fichier existant à celui du mainteneur du paquet. Suivez les indications de l’écran pour afficher les différences, conserver ou remplacer le fichier. Tout conserver ou tout remplacer peut faire perdre soit vos réglages, soit des changements indispensables à la nouvelle version.
  • Dépôts externes et accès : les PPA (Personal Package Archives) et dépôts tiers sont désactivés pendant l’opération. Si l’outil annonce un port SSH de secours distinct, adaptez les règles du pare-feu et du cloud à cette indication, en limitant l’accès aux administrateurs. Ne désactivez pas tout le pare-feu et ne laissez pas de ports inutiles ouverts en permanence.

Examinez aussi la liste des paquets obsolètes avant d’accepter leur suppression. Si un redémarrage est demandé à la fin, effectuez-le pendant la maintenance et gardez la console jusqu’à la fin des contrôles.

Contrôler la version et les services après redémarrage

Reconnectez-vous et vérifiez la version cible ainsi que les services en échec. Comparez le noyau à votre relevé initial ou aux informations de paquets de la version cible, puis actualisez les listes de paquets.

cat /etc/os-release
uname -r
systemctl --failed
sudo apt update
apt list --upgradable

Confirmez que VERSION_ID correspond à la cible et analysez chaque échec de systemctl --failed. Même sans unité en échec, testez les réponses Web, les lectures et écritures en base, les tâches planifiées, la supervision et les sauvegardes selon les besoins réels. Essayez une nouvelle connexion SSH avant de fermer la console de secours.

Ne reconfigurez que les dépôts externes nécessaires, après avoir vérifié leur prise en charge de la nouvelle version et la compatibilité des paquets installés. Ne réactivez pas tous les dépôts portant l’ancien nom de code. Attendez la stabilité des services avant tout nettoyage supplémentaire et examinez les suppressions proposées.

Gérer les erreurs et les connexions interrompues

Conservez le dernier message d’erreur et les journaux sous /var/log/dist-upgrade/. Les consignes Ubuntu de signalement des erreurs de mise à niveau citent également ces journaux. Listez d’abord les fichiers, puis consultez ceux qui existent pour identifier l’étape en échec et les causes liées aux paquets.

sudo ls -lah /var/log/dist-upgrade/
sudo less /var/log/dist-upgrade/main.log

En cas de déconnexion SSH, utilisez d’abord la console de secours pour examiner le processus de mise à niveau existant et sa progression. Ne relancez pas l’opération et ne supprimez pas les fichiers de verrouillage APT simplement à cause de la déconnexion. Une interruption du traitement des paquets exige une récupération adaptée aux journaux et à leur état actuel.

Il n’existe pas de commande unique générale pour annuler une mise à niveau et retrouver l’ancienne version d’Ubuntu. Si une restauration est nécessaire, restaurez les sauvegardes testées du serveur et de la base à un instant cohérent, ou basculez vers l’ancien serveur préparé. Tenez compte des écritures effectuées depuis la sauvegarde. Restaurer le seul fichier de configuration Prompt ne rétablit pas un système d’exploitation déjà modifié.