{{tag>portail installation administration}} ====== 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 [[:distributions|distribution]] Linux essaie de subvenir à cette problématique à sa façon.\\ Ubuntu est une [[:distributions|distribution]] dite //point release// (par opposition par exemple au modèle de distribution continu //rolling release// de [[:distributions#famille_arch|Arch]] ou [[:distributions#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 [[:versions|version]] d'Ubuntu publique. [[:Canonical]] distribue alors une [[:versions|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]]**. Voir le chapitre //[[:faq_upgrade#Quelles sont les différences entre mise à niveau, mise à jour, et migration ?]]// dans la [[:faq_upgrade|FAQ]] sur le sujet. ===== 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_upgrade|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. {{:migration_update-manager.png?500}} Si le gestionnaire de mise à jour se lance automatiquement, vous pouvez accepter la proposition de mise à niveau et suivre les instructions. {{:applications:miseaniveau.png?500}} 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 ''[[man>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 : * do-release-upgrade --check-dist-upgrade-onlyL'option ''%%--check-dist-upgrade-only%%'' vérifie l'existence d'une nouvelle version. Si une nouvelle version 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 --sandboxL'option ''%%--sandbox%%'' permet de tester une mise à niveau dans un environnement protégé. Ceci est particulièrement utile pour tester le déploiement d'une mise à niveau avant de procéder à son application dans l'environnement de production. L'option %%--%%sandbox semble ne plus être proposée sous 20.04 et 22.04 * do-release-upgrade ou avec une interface graphique : sudo do-release-upgrade -f DistUpgradeViewGtk3 * Mise à niveau sans interaction : do-release-upgrade -f DistUpgradeViewNonInteractive 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-releaseLe 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-releaseL'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 [[:firewall|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. * Pour se reconnecter :ssh login@pc42 #sur le serveur habituel.oussh login@pc42 -p 1022 #Si le pare-feu ne le bloque pas. * Pour récupérer le terminal :sudo screen -xousudo screen -r ==== Rechercher uniquement des versions LTS ==== L'outil ''[[man>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. * ''Prompt=lts'' : rechercher les versions LTS uniquement ; * ''Prompt=normal'' : rechercher toutes les versions ; * ''Prompt=never'' : ne //jamais// rechercher de nouvelle version d'Ubuntu. 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 [[:old-releases|version obsolète d'Ubuntu]] n'est pas possible. [[:tutoriel:sauvegarder_home|Sauvegarder vos données]] et installer une [[:versions|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 [[:old-releases|page]]. ==== Migrer en douceur via dual-boot ==== Le //[[:tutoriel:multiboot_avance|dual boot]]// permettrait de passer progressivement d'une version à une autre : * consulter le tutoriel : //[[tutoriel:migrer_par_dual_boot|Comment migrer en douceur (par dual-boot)]]//. 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 [[:kernel|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 [[:kernel|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 [[:paquet|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 [[:kernel|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 [[:kernel|noyaux]] peuvent être supprimés pour libérer de l'espace. Cela se fait manuellement. ==== Dépôts annexes ==== Si vous aviez des [[:PPA|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 : ''[[https://manpages.ubuntu.com/manpages/mantic/man8/do-release-upgrade.8.html|--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é [[#mise_a_niveau_interrompue_ou_defectueuse|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//.d'' où ''//conf//'' 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, //[[:recovery_mode|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 ''[[man>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 ===== * [[:faq_upgrade|FAQ sur la mise à niveau]] * [[:tutoriel:migrer_sans_connexion_internet|Mettre à niveau une version d'Ubuntu hors-ligne]] * Pour les détails, voir cette [[https://forum.ubuntu-fr.org/viewtopic.php?id=1566641|discussion]]. * Pour connaître les applications installées manuellement, voir cette [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22816589#p22816589|discussion]]. ----- * //[[:Contributeurs]] : [[:utilisateurs:krodelabestiole]].// * [[https://forum.ubuntu-fr.org/viewtopic.php?id=2094192|Discussion]] au sujet de cette page sur le forum.