EXPÉRIMENTAL : Upgrade CentOS Stream 8 to CentOS Stream 9

Bonjour à tous,
À cet instant, il n'est pas possible de mettre à niveau CentOS Stream (De 8 à 9).
ll n'est pas possible de mettre à niveau non plus Rocky Linux ou Alma Linux de 8 à 9. (Scoop, Alma Linux développe son outil de mise à niveau, ça va arriver)
RedHat Enterprise Linux peut être mis à niveau de 8 à 9 (les outils sont fournis par Red Hat), même si évidemment, dans un environnement professionel, on ne fera JAMAIS ce type d'opération. Je le rèpète assez
Cependant je vous montre une technique MANUELLE et non sans risque de mise à niveau.
--------------------------------------------
Dans un premier temps, sur notre système CentOS Stream, nous allons installer les dépôts CentOS Stream 9 + Le paquet release + les clés GPG :
Si on a installé les dépôts EPEL, on fait de même.
On nettoie le cache local :
On utilisera distro-sync au lieu de upgrade avec dnf, et on spécifiera explicitement la version 9 :
Une fois terminé, on reboot :
J'ai fait le test avec une CentOS Stream installée en mode "Serveur avec GUI", j'ai été accueilli par GNOME 40.
Lorsqu'on tente d'installer un paquet, RPM nous annonce cette erreur :
On va reconstruire la base RPM comme du temps de Mandriva où ça pétait :
On en profite au passage pour supprimer les paquets orphelins :
On remarquera un problème au niveau des modules dnf :
On ira donc supprimer les personnalisation des modules en supprimant simplement quelques fichiers :
On reboot pour vérifier que notre système est toujours fonctionnel.
Après on peut tester d'installer un paquet pour vérifier que tout est OK :
Et tout est OK, plus d'erreur :
Evidemment, certains composants ont pu être supprimé (à cause des modules non reconnus OU lors de la suppression des orphelins). On les réinstallera.
--------------------------
Ça permet de dégrossir quand même la mise à niveau, plutôt que de tout réinstaller le système + ses programmes.
CentOS avec 10 ans de support n'existe plus, CentOS Stream n'en a plus que 5 et ne dispose pas de système de mise à niveau.
De mon point de vue, fuyez CentOS Stream, ce systène n'a plus les avantages de feu CentOS !
Je vous conseille donc de vous orienter vers Red Hat Enterprise Linux si vous avez moins de 16 serveurs (c'est gratuit).
Si vous avez plus de serveurs et/ou que vous ne souhiatez pas être embêté avec un système de licencing, orientez-vous du côté d'Alma Linux !
À cet instant, il n'est pas possible de mettre à niveau CentOS Stream (De 8 à 9).
ll n'est pas possible de mettre à niveau non plus Rocky Linux ou Alma Linux de 8 à 9. (Scoop, Alma Linux développe son outil de mise à niveau, ça va arriver)
RedHat Enterprise Linux peut être mis à niveau de 8 à 9 (les outils sont fournis par Red Hat), même si évidemment, dans un environnement professionel, on ne fera JAMAIS ce type d'opération. Je le rèpète assez

Cependant je vous montre une technique MANUELLE et non sans risque de mise à niveau.
--------------------------------------------
Dans un premier temps, sur notre système CentOS Stream, nous allons installer les dépôts CentOS Stream 9 + Le paquet release + les clés GPG :
Code BASH :
dnf install http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-9.0-18.el9.noarch.rpm http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-stream-release-9.0-18.el9.noarch.rpm http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-9.0-18.el9.noarch.rpm
Si on a installé les dépôts EPEL, on fait de même.
Code BASH :
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
On nettoie le cache local :
Code BASH :
dnf clean all
On utilisera distro-sync au lieu de upgrade avec dnf, et on spécifiera explicitement la version 9 :
Code BASH :
dnf -y --releasever=9 --allowerasing distro-sync
Une fois terminé, on reboot :
Code BASH :
reboot
J'ai fait le test avec une CentOS Stream installée en mode "Serveur avec GUI", j'ai été accueilli par GNOME 40.
Lorsqu'on tente d'installer un paquet, RPM nous annonce cette erreur :
Code TEXT :
RPM : attention : Found bdb_ro Packages database while attempting sqlite backend: using bdb_ro backend. RPM : erreur : impossible d'ouvrir l'index Packages en utilisant bdb_ro - Opération non permise (1) RPM : erreur : impossible d'ouvrir la base de données paquet dans /var/lib/rpm
On va reconstruire la base RPM comme du temps de Mandriva où ça pétait :
Code BASH :
rm -f /var/lib/rpm/__db* rpm --rebuilddb
On en profite au passage pour supprimer les paquets orphelins :
Code BASH :
dnf autoremove
On remarquera un problème au niveau des modules dnf :
Code TEXT :
Problème 1: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module container-tools:rhel8:8070020220921123537:39077419.x86_64 Problème 2: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module llvm-toolset:rhel8:8070020220830134700:3b9f49c4.x86_64 Problème 3: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module perl:5.26:8000020190628020724:55190bc5.x86_64 Problème 4: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module perl-DBD-SQLite:1.58:8030020200716174729:3a70019f.x86_64 Problème 5: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module perl-DBI:1.641:8030020200716150652:1e4bbb35.x86_64 Problème 6: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module perl-IO-Socket-SSL:2.066:8040020200924212038:1aedcbfe.x86_64 Problème 7: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module perl-libwww-perl:6.34:8040020211102170116:bf75fe78.x86_64 Problème 8: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module python36:3.6:8050020210825152031:982725ab.x86_64 Problème 9: requêtes conflictuelles - rien de fournit module(platform:el8) rendu nécessaire par le module virt:rhel:8070020220921151759:3b9f49c4.x86_64
On ira donc supprimer les personnalisation des modules en supprimant simplement quelques fichiers :
Code BASH :
rm /etc/dnf/modules.d/*
On reboot pour vérifier que notre système est toujours fonctionnel.
Code BASH :
reboot
Après on peut tester d'installer un paquet pour vérifier que tout est OK :
Code BASH :
dnf install iptraf-ng
Et tout est OK, plus d'erreur :
Code TEXT :
Dernière vérification de l’expiration des métadonnées effectuée il y a 0:16:00 le mer. 19 oct. 2022 22:23:49. Dépendances résolues. ========================================================================================== Paquet Architecture Version Dépôt Taille ========================================================================================== Installation: iptraf-ng x86_64 1.2.1-4.el9 baseos 266 k Résumé de la transaction ========================================================================================== Installer 1 Paquet Taille totale : 266 k Taille des paquets installés : 389 k Voulez-vous continuer ? [o/N]
Evidemment, certains composants ont pu être supprimé (à cause des modules non reconnus OU lors de la suppression des orphelins). On les réinstallera.
--------------------------
Ça permet de dégrossir quand même la mise à niveau, plutôt que de tout réinstaller le système + ses programmes.
CentOS avec 10 ans de support n'existe plus, CentOS Stream n'en a plus que 5 et ne dispose pas de système de mise à niveau.
De mon point de vue, fuyez CentOS Stream, ce systène n'a plus les avantages de feu CentOS !
Je vous conseille donc de vous orienter vers Red Hat Enterprise Linux si vous avez moins de 16 serveurs (c'est gratuit).
Si vous avez plus de serveurs et/ou que vous ne souhiatez pas être embêté avec un système de licencing, orientez-vous du côté d'Alma Linux !