Différences entre versions de « Upgrade rocky8to9 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 95 : Ligne 95 :
 
Vous pouvez supprimer les paquets en cache en exécutant « dnf clean packages ».
 
Vous pouvez supprimer les paquets en cache en exécutant « dnf clean packages ».
 
</pre>
 
</pre>
== Paquetages incompatibles ==
 
Si jamais vous avez un souci de paquetage en conflit comme par exemple avec le paquetage ''iptables'':
 
<pre>
 
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
 
</pre>
 
Il vous faudra désinstaller le paquetage problématique:
 
<pre>
 
# dnf -y remove iptables-ebtables-1.8.5-11.el8.x86_64
 
</pre>
 
Pour installer le nouveau en supprimant les dépendances incompatibles:
 
<pre>
 
dnf -y install --allowerasing iptables-nft-1.8.10-11.el9_5.x86_64
 
</pre>
 
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:
 
<pre>
 
# dnf -y update --allowerasing
 
</pre>
 
Pour être sûr que tout fonctionne correctement, nous allons faire une dernière vérification:
 
<pre>
 
# dnf -y update
 
</pre>
 
Si vous avez encore des conflits, comme par exemple, ceux ci-dessous:
 
<pre>
 
# 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é !
 
</pre>
 
Nous allons automatiser la remise à zéro de tous les paquetages en erreur.
 
 
Tout d'abord, nous allons les stocker dans une variable:
 
<pre>
 
# RPMS=$(dnf update 2>&1 | grep nothing | awk -F ' ' '{print $8}'| awk -F ':' '{print $1}')
 
</pre>
 
Et vérifier que notre variable contient les bonnes valeurs (ceci est un exemple):
 
<pre>
 
# echo $RPMS
 
httpd nginx perl perl-IO-Socket-SSL perl-libwww-perl php python36
 
</pre>
 
On peut maintenant faire une boucle qui va exécuter le ''reset'':
 
<pre>
 
for rpm in $RPMS;do dnf -y module reset $rpm;done
 
</pre>
 
Maintenant la commande ''update'' devrait passer sans erreurs:
 
<pre>
 
# 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é !
 
</pre>
 
 
 
== Bye bye Rocky 8 ==
 
== Bye bye Rocky 8 ==
 
Avant de redémarrer, il faut reconstruire la base de données des paquetages (rpm) :
 
Avant de redémarrer, il faut reconstruire la base de données des paquetages (rpm) :

Version du 17 novembre 2025 à 10:35

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 !

Warning-icon.png

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

Rocky9 packages upgrade.jpg

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 ».

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 !