Fedora : Mettre à niveau (Upgrade) Fedora
Table des matières
Comme toute distribution, il arrive à un moment où le moment fatidique de l'upgrade arrive.
Dans un premier temps, avoir sa distribution à jour :
Puis, vérifier que le plugin dnf-plugin-system-upgrade est installé :
Maintenant que le programme dnf-plugin-system-upgrade est installé, on met à niveau en utilisant la commande dnf:
Un exemple est montré ici avec la version 41.
Les commandes ont pour but de :
Officiellement, le saut de version n-1 vers n est supporté. Le saut n-2 vers n est aussi testé.
Les autres saut de version sont à vos risques et périls (néanmoins testé avec succès dans plusieurs cas)
Pour mettre à niveau Fedora vers une version Beta, vous pouvez utiliser dnf de la même manière que la mise à niveau vers une version stable, en indiquant le numéro de la version Béta.
Si vous voulez tester la mise à niveau en graphique avec GNOME Logiciels, Il faut l'autoriser à aller chercher les mises à niveau vers les préversions :
Pour effectuer la mise à niveau vers rawhide :
On va synchroniser les paquets du système avec la version actuelle de Fedora :
On peut aussi supprimer des paquets de la version précédente qui ne sont plus nécessaire avec la commande suivante (installer le paquet du même nom si la commande n'existe pas) :
Et voila, Fedora a été mise à niveau !
Dans le cas des éditions Atomique de Fedora, mettre à niveau consistera à changer la base du système (rebase).
Noter la branche sur laquelle on est avec :
Sur une Fedora Silverblue 40, cela renvoie :
Pour mettre à niveau vers Fedora 41, on rebase vers la version 41 ainsi :
Plus d'infos ici : https://www.linuxtricks.fr/wiki/fedora-silverblue-memo-des-commandes-rpm-ostree-et-ostree
Le problème du Raspberry Pi, c'est qu'il ne dispose pas d'horloge interne.
Si on procède à la mise à niveau avec dnf system-upgrade, au reboot, la date et heure n'étant pas définies, cela pose problème pour vérifier la signature des paquets :
Actuellement, il y a plusieurs méthodes de contournement, mais celle que je préfère est de faire la mise à niveau "en ligne".
Je vous conseille d'arrêter les services critiques (base de données par exemple).
Ensuite on fait la mise à niveau avec dnf en changeant les dépôts à la volée via distro-sync. Exemple ici vers la version 41 :
Introduction
Comme toute distribution, il arrive à un moment où le moment fatidique de l'upgrade arrive.
Prérequis
Dans un premier temps, avoir sa distribution à jour :
Code BASH :
dnf update
Puis, vérifier que le plugin dnf-plugin-system-upgrade est installé :
Code BASH :
dnf install dnf-plugin-system-upgrade
Mise à niveau
Maintenant que le programme dnf-plugin-system-upgrade est installé, on met à niveau en utilisant la commande dnf:
Vers une version stable
Un exemple est montré ici avec la version 41.
Code BASH :
dnf system-upgrade download --releasever=41 dnf system-upgrade reboot
Les commandes ont pour but de :
- Modifier les dépôts de la version n à n+1 et Télécharger les nouveaux RPM's
- Installer ceux-ci au prochain reboot (une entrée dans GRUB est créée sous le nom de "System Upgrade")
Officiellement, le saut de version n-1 vers n est supporté. Le saut n-2 vers n est aussi testé.
Les autres saut de version sont à vos risques et périls (néanmoins testé avec succès dans plusieurs cas)
Vers une version Béta
Pour mettre à niveau Fedora vers une version Beta, vous pouvez utiliser dnf de la même manière que la mise à niveau vers une version stable, en indiquant le numéro de la version Béta.
Si vous voulez tester la mise à niveau en graphique avec GNOME Logiciels, Il faut l'autoriser à aller chercher les mises à niveau vers les préversions :
Code BASH :
gsettings set org.gnome.software show-upgrade-prerelease true
Vers la version instable « rawhide »
Pour effectuer la mise à niveau vers rawhide :
Code BASH :
dnf system-upgrade download --releasever=rawhide
dnf system-upgrade reboot
Opérations facultatives après la mise à niveau
On va synchroniser les paquets du système avec la version actuelle de Fedora :
Code BASH :
dnf distro-sync
On peut aussi supprimer des paquets de la version précédente qui ne sont plus nécessaire avec la commande suivante (installer le paquet du même nom si la commande n'existe pas) :
Code BASH :
remove-retired-packages
Et voila, Fedora a été mise à niveau !
Installations spécifiques de Fedora
Fedora Atomique
Dans le cas des éditions Atomique de Fedora, mettre à niveau consistera à changer la base du système (rebase).
Noter la branche sur laquelle on est avec :
Code BASH :
rpm-ostree status
Sur une Fedora Silverblue 40, cela renvoie :
Code :
fedora:fedora/40/x86_64/silverblue
Pour mettre à niveau vers Fedora 41, on rebase vers la version 41 ainsi :
Code BASH :
rpm-ostree rebase fedora:fedora/41/x86_64/silverblue
Plus d'infos ici : https://www.linuxtricks.fr/wiki/fedora-silverblue-memo-des-commandes-rpm-ostree-et-ostree
Fedora sur Raspberry Pi
Le problème du Raspberry Pi, c'est qu'il ne dispose pas d'horloge interne.
Si on procède à la mise à niveau avec dnf system-upgrade, au reboot, la date et heure n'étant pas définies, cela pose problème pour vérifier la signature des paquets :
Code TEXT :
2024-10-11T02:03:19+0200 CRITICAL Problem opening package uboot-images-armv8-2024.10-1.fc41.noarch.rpm 2024-10-11T02:03:19+0200 CRITICAL Problem opening package vulkan-loader-1.3.296.0-1.fc41.aarch64.rpm 2024-10-11T02:03:19+0200 CRITICAL Problem opening package xdg-dbus-proxy-0.1.6-1.fc41.aarch64.rpm 2024-10-11T02:03:19+0200 DDEBUG Cleaning up. 2024-10-11T02:03:19+0200 DDEBUG Plugins were unloaded. 2024-10-11T02:03:19+0200 SUBDEBUG Traceback (most recent call last): File "/usr/lib/python3.12/site-packages/dnf/cli/main.py", line 67, in main return _main(base, args, cli_class, option_parser_class) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/dnf/cli/main.py", line 106, in _main return cli_run(cli, base) ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/dnf/cli/main.py", line 130, in cli_run ret = resolving(cli, base) ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/dnf/cli/main.py", line 183, in resolving base.do_transaction(display=displays) File "/usr/lib/python3.12/site-packages/dnf/cli/cli.py", line 246, in do_transaction self.gpgsigcheck(install_pkgs) File "/usr/lib/python3.12/site-packages/dnf/cli/cli.py", line 313, in gpgsigcheck raise dnf.exceptions.Error(_("GPG check FAILED")) dnf.exceptions.Error: GPG check FAILED 2024-10-11T02:03:19+0200 CRITICAL Error: GPG check FAILE
Actuellement, il y a plusieurs méthodes de contournement, mais celle que je préfère est de faire la mise à niveau "en ligne".
Je vous conseille d'arrêter les services critiques (base de données par exemple).
Ensuite on fait la mise à niveau avec dnf en changeant les dépôts à la volée via distro-sync. Exemple ici vers la version 41 :
Code BASH :
dnf distro-sync --releasever=41