News - Logiciels Libres

ASTUCE : Upgrade CentOS Stream 8 to CentOS Stream 9

| | Logiciels Libres | 1 Commentaire | 3005
ASTUCE : Upgrade CentOS Stream 8 to CentOS Stream 9
Cet article a été mis à jour le 2 mai 2024, à la suite d'informations sur CentOS Stream 8.
Ajout des liens sur la date de fin de vie et revérification du tutoriel.


Bonjour à tous,

La fin de support pour CentOS Stream 8 est annoncée au 31 mai 2024 : https://blog.centos.org/2023/04/end-dates-are-coming-for-centos-stream-8-and-centos-linux-7/

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)

Edition au 2 mai 2024 : le projet d'Alma Linux nommé Elevate permet de migrer de Alma Linux 8 vers 9. Rocky Linux est également pris en charge.

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.
La méthode la plus propre est l'installation de CentOS Stream 9 sur une autre machine, et de transférer vos applications/données sur celle ci.

Cette procédure n'est pas officielle, et c'est de la "bidouille" totale.
Par conséquent, votre système peut casser ! Soyez sûr de ce que vous faites et réalisez des sauvegardes et/ou un snapshot.


--------------------------------------------

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 https://ftp-stud.hs-esslingen.de/pub/Mirrors/centos-stream/9-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-9.0-24.el9.noarch.rpm https://ftp-stud.hs-esslingen.de/pub/Mirrors/centos-stream/9-stream/BaseOS/x86_64/os/Packages/centos-stream-release-9.0-24.el9.noarch.rpm https://ftp-stud.hs-esslingen.de/pub/Mirrors/centos-stream/9-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-9.0-24.el9.noarch.rpm


La commande si-dessus a été mise à jour au 02/05/2024.
Si les paquets sont non trouvés, récupérez les URL des paquets centos-gpg-keys centos-stream-release et centos-stream-repos// sur un miroir par exemple https://ftp-stud.hs-esslingen.de/pub/Mirrors/centos-stream/9-stream/BaseOS/x86_64/os/Packages/


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 --releasever=9 --allowerasing  distro-sync


Si vous avez des conflits, il faut les gérer.
Dans tous les cas, s'il y a un conflit, la transaction de test vous l'annoncera.


Une fois terminé, on reboot :
Code BASH :
reboot


Après la mise à niveau, vérifier que tout fonctionne bien évidemment.

A noter, lorsqu'on tente d'installer un paquet après l'upgrade, 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 utiliser la méthode habituelle pour reconstruire la base RPM :

Code BASH :
rm -f /var/lib/rpm/__db*
rpm --rebuilddb


On met à jour les groupes essentiels au bon fonctionnement du système :
Code BASH :
dnf -y groupupdate "Core" "Minimal Install"


On en profite au passage pour supprimer les paquets orphelins :

Code BASH :
dnf autoremove


Si on a des problèmes 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 supprimer les personnalisations 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ème 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 ! Rocky Linux ça marche aussi, mais étant contributeur d'Alma Linux, je fais la promotion de celle-ci évidemment.