Différences entre versions de « Upgrade rocky8to9 »
| Ligne 72 : | Ligne 72 : | ||
Ainsi que le logo redhat : | Ainsi que le logo redhat : | ||
<pre> | <pre> | ||
| − | rm -rf /usr/share/redhat-logos | + | # rm -rf /usr/share/redhat-logos |
</pre> | </pre> | ||
| + | |||
= Passage à la version 9 = | = Passage à la version 9 = | ||
La commande suivante risque de prendre du temps et c'est normal puisqu'elle met à jour l'intégralité des paquetages présent sur la machine : | La commande suivante risque de prendre du temps et c'est normal puisqu'elle met à jour l'intégralité des paquetages présent sur la machine : | ||
Version du 17 novembre 2025 à 10:33
Introduction
Rocky est une distribution Linux qui fonctionne avec un système versions majeures à l'inverse de CentOS qui maintenant fonctionne en publication continue.
L'avantage du système par version est qu'il garantie une compatibilité entres les différents logiciels en figeant leurs versions. Après un certain temps, ces logiciels deviennent trop vieux et leurs mise à jour n'est pas possible sans un changement de version de Rocky !
|
Soyez sûr de faire une sauvegarde des données présente sur la machine, si c'est une machine virtuelle ou un conteneur faites un snapshot. Les modifications apportées au système ne sont pas anodines et peuvent le rendre inopérant. Vous êtes prévenu... nous pouvons poursuivre ! |
Préparation du système
Tout d'abord on va s'assurer de la version du système en vérifiant dans le fichier /etc/os-release :
# cat /etc/os-release NAME="Rocky Linux" VERSION="8.10 (Green Obsidian)" ID="rocky" ID_LIKE="rhel centos fedora" ...
C'est bien une version 8 de Rocky et on va la mettre complétement à jour avant de basculer sur la version 9 :
# dnf upgrade --refresh Rocky Linux 8 - AppStream 18 kB/s | 4.8 kB 00:00 Rocky Linux 8 - BaseOS 20 kB/s | 4.3 kB 00:00 Rocky Linux 8 - Extras 12 kB/s | 3.1 kB 00:00 Extra Packages for Enterprise Linux 8 - x86_64 20 kB/s | 11 kB 00:00 Dépendances résolues. ..... Résumé de la transaction =========================================================================================== Mettre à niveau 109 Paquets Taille totale des téléchargements : 157 M Voulez-vous continuer ? [o/N] : o Téléchargement des paquets : ...
Ajout des dépôts de Rocky 9
Pour mettre en place le dépôt de Rocky 9 il va falloir installer les paquetages suivants:
Ils sont tous disponibles à l'adresse suivante http://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/Packages/r/ et nous allons les télécharger avec curl dans le répertoire /tmp:
# curl http://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-9.6-1.3.el9.noarch.rpm -o /tmp/rocky-gpg-keys.rpm # curl http://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/Packages/r/rocky-release-9.6-1.3.el9.noarch.rpm -o /tmp/rocky-release.rpm # curl http://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/Packages/r/rocky-repos-9.6-1.3.el9.noarch.rpm -o /tmp/rocky-repos.rpm
On peut maintenant les installer avec la commande rpm:
# dnf -y install /tmp/rocky-*.rpm
Et vérifier que tout c'est bien installé:
# rpm -qa | grep -E rocky- rocky-gpg-keys-9.6-1.3.el9.noarch rocky-release-9.6-1.3.el9.noarch rocky-repos-9.6-1.3.el9.noarch rocky-logos-httpd-86.3-1.el8.noarch
On peut maintenant supprimer certains paquetages qui peuvent poser problème lors de la mise à jour :
# dnf -y remove rpmconf yum-utils epel-release
Ainsi que le logo redhat :
# rm -rf /usr/share/redhat-logos
Passage à la version 9
La commande suivante risque de prendre du temps et c'est normal puisqu'elle met à jour l'intégralité des paquetages présent sur la machine :
# dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync ... Total 12 MB/s | 228 MB 00:19 Rocky Linux 9 - BaseOS 1.7 MB/s | 1.7 kB 00:00 Import de la clef GPG 0x350D275D : Utilisateur : « Rocky Enterprise Software Foundation - Release key 2022 <releng@rockylinux.org> » Empreinte : 21CB 256A E16F C54C 6E65 2949 702D 426D 350D 275D Provenance : /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 La clé a bien été importée Test de la transaction La vérification de la transaction a réussi. Lancement de la transaction de test Les paquets téléchargés ont été mis en cache jusqu’à la prochaine transaction réussie. Vous pouvez supprimer les paquets en cache en exécutant « dnf clean packages ».
Paquetages incompatibles
Si jamais vous avez un souci de paquetage en conflit comme par exemple avec le paquetage iptables:
Erreur : Erreur de la transaction de test : le fichier /usr/share/man/man8/ebtables-nft.8.gz de l'installation de iptables-nft-1.8.10-11.el9_5.x86_64 entre en conflit avec le fichier du paquet iptables-ebtables-1.8.5-11.el8.x86_64
Il vous faudra désinstaller le paquetage problématique:
# dnf -y remove iptables-ebtables-1.8.5-11.el8.x86_64
Pour installer le nouveau en supprimant les dépendances incompatibles:
dnf -y install --allowerasing iptables-nft-1.8.10-11.el9_5.x86_64
Il y a de grande change que les paquetages ne ceux soient pas mit à jour et vous pouvez forcer la mise à jour avec la commande:
# dnf -y update --allowerasing
Pour être sûr que tout fonctionne correctement, nous allons faire une dernière vérification:
# dnf -y update
Si vous avez encore des conflits, comme par exemple, ceux ci-dessous:
# dnf update attention : Found bdb_ro Packages database while attempting sqlite backend: using bdb_ro backend. attention : Found bdb_ro Packages database while attempting sqlite backend: using bdb_ro backend. Dernière vérification de l’expiration des métadonnées effectuée il y a 0:18:21 le lun. 17 nov. 2025 09:48:50. Problèmes de dépendance modulaire : Problème 1: requêtes conflictuelles - nothing provides module(platform:el8) needed by module httpd:2.4:8100020250908140623:e155f54d.x86_64 from @modulefailsafe Problème 2: requêtes conflictuelles - nothing provides module(platform:el8) needed by module nginx:1.14:8040020210610090123:9f9e2e7e.x86_64 from @modulefailsafe Problème 3: requêtes conflictuelles - nothing provides module(platform:el8) needed by module perl:5.26:8050020211109115414:b4937e53.x86_64 from @modulefailsafe Problème 4: requêtes conflictuelles - nothing provides module(platform:el8) needed by module perl-IO-Socket-SSL:2.066:8090020231016070024:88fd4976.x86_64 from @modulefailsafe Problème 5: requêtes conflictuelles - nothing provides module(platform:el8) needed by module perl-libwww-perl:6.34:8090020231016070052:8af8375c.x86_64 from @modulefailsafe Problème 6: requêtes conflictuelles - nothing provides module(platform:el8) needed by module php:8.0:8100020231211162605:3924b0c1.x86_64 from @modulefailsafe Problème 7: requêtes conflictuelles - nothing provides module(platform:el8) needed by module python36:3.6:8100020250603161425:5ae887d0.x86_64 from @modulefailsafe Dépendances résolues. Rien à faire. Terminé !
Nous allons automatiser la remise à zéro de tous les paquetages en erreur.
Tout d'abord, nous allons les stocker dans une variable:
# RPMS=$(dnf update 2>&1 | grep nothing | awk -F ' ' '{print $8}'| awk -F ':' '{print $1}')
Et vérifier que notre variable contient les bonnes valeurs (ceci est un exemple):
# echo $RPMS httpd nginx perl perl-IO-Socket-SSL perl-libwww-perl php python36
On peut maintenant faire une boucle qui va exécuter le reset:
for rpm in $RPMS;do dnf -y module reset $rpm;done
Maintenant la commande update devrait passer sans erreurs:
# dnf -y update Dernière vérification de l’expiration des métadonnées effectuée il y a 0:02:44 le lun. 17 nov. 2025 10:19:49. Dépendances résolues. Rien à faire. Terminé !
Bye bye Rocky 8
Avant de redémarrer, il faut reconstruire la base de données des paquetages (rpm) :
# rpm --rebuilddb
On peut maintenant abandonner Rocky 8:
# reboot
Et vérifier la mise à niveau avec la même commande qu'au début de ce tutoriel:
# cat /etc/os-release NAME="Rocky Linux" VERSION="9.6 (Blue Onyx)" ID="rocky" ID_LIKE="rhel centos fedora" VERSION_ID="9.6"
Félicitation, vous êtes passé à Rocky 9 !