Fedora Workstation et Serveur

Fedora : Mettre à niveau (Upgrade) Fedora

Table des matières

system_upgrade



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 :

  1. Modifier les dépôts de la version n à n+1 et Télécharger les nouveaux RPM's
  2. 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 »



La version rawhide n'est pas à utiliser en environnement de production !!

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 ! :magic:

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
Cette page a été vue 49427 fois