Différences entre versions de « Upgrade rocky8to9 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
 
(8 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
 
Rocky est une distribution Linux qui fonctionne avec un système [https://fr.wikipedia.org/wiki/Version_d%27un_logiciel versions majeures] à l'inverse de CentOS qui maintenant fonctionne en [https://fr.wikipedia.org/wiki/Rolling_release publication continue].
 
Rocky est une distribution Linux qui fonctionne avec un système [https://fr.wikipedia.org/wiki/Version_d%27un_logiciel versions majeures] à l'inverse de CentOS qui maintenant fonctionne en [https://fr.wikipedia.org/wiki/Rolling_release 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 !
+
L'avantage du système par version est qu'il garantit une compatibilité entre les différents logiciels en figeant leurs versions. Après un certain temps, ces logiciels deviennent trop vieux et leurs mises à jour ne sont pas possibles sans un changement de version de Rocky !
  
 
{|style="width:900px" align="center"
 
{|style="width:900px" align="center"
Ligne 9 : Ligne 9 :
 
|width="10px"|
 
|width="10px"|
 
|valign="top"|
 
|valign="top"|
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.  
+
Ce tutoriel va utiliser une bonne quantité de mémoire vive avec le commande ''dnf'', vous devez vous assurer que votre machine ou conteneur en possède suffisamment.
 +
 
 +
'''1Go de RAM pour une machine virtuelle ou un conteneur est un minimum !'''
 +
|}
 +
 
 +
{|style="width:900px" align="center"
 +
|
 +
[[Fichier:Warning-icon.png|80px]]
 +
|width="10px"|
 +
|valign="top"|
 +
Soyez sûr de faire une sauvegarde des données présentes 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 !
 
Vous êtes prévenu... nous pouvons poursuivre !
Ligne 24 : Ligne 34 :
 
...
 
...
 
</pre>
 
</pre>
C'est bien une version 8 de Rocky et on va la mettre complétement à jour avant de basculer sur la version 9 :
+
C'est bien une version 8 de Rocky et on va la mettre complètement à jour avant de basculer sur la version 9 :
 
<pre>
 
<pre>
# dnf upgrade --refresh
+
# dnf -y upgrade --refresh
 
Rocky Linux 8 - AppStream                                      18 kB/s | 4.8 kB    00:00     
 
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 - BaseOS                                          20 kB/s | 4.3 kB    00:00     
Ligne 66 : Ligne 76 :
 
rocky-logos-httpd-86.3-1.el8.noarch
 
rocky-logos-httpd-86.3-1.el8.noarch
 
</pre>
 
</pre>
On peut maintenant supprimer certains paquetages qui peuvent poser problème lors de la mise à jour :
+
On va supprimer le logo RedHat :
<pre>
 
# dnf -y remove rpmconf yum-utils epel-release
 
</pre>
 
Ainsi que le logo redhat :
 
 
<pre>
 
<pre>
 
# rm -rf /usr/share/redhat-logos
 
# rm -rf /usr/share/redhat-logos
 
</pre>
 
</pre>
 
+
Et certains paquetages qui peuvent poser problème lors de la mise à jour :
= 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 :
 
 
<pre>
 
<pre>
# dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync
+
# dnf -y remove rpmconf yum-utils
 
 
...
 
 
 
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 ».
 
 
</pre>
 
</pre>
 
== Paquetages incompatibles ==
 
== Paquetages incompatibles ==
Si jamais vous avez un souci de paquetage en conflit comme par exemple avec le paquetage ''iptables'':
+
En exécutant la commande précédente, il est possible que vous ayez des conflits comme, par exemple, ceux ci-dessous:
<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>
 
<pre>
# dnf -y update --allowerasing
+
# dnf -y remove rpmconf yum-utils
</pre>
+
Modular dependency problems:
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
+
  Problem 1: conflicting requests
 
   - nothing provides module(platform:el8) needed by module httpd:2.4:8100020250908140623:e155f54d.x86_64 from @modulefailsafe
 
   - nothing provides module(platform:el8) needed by module httpd:2.4:8100020250908140623:e155f54d.x86_64 from @modulefailsafe
  Problème 2: requêtes conflictuelles
+
  Problem 2: conflicting requests
 
   - nothing provides module(platform:el8) needed by module nginx:1.14:8040020210610090123:9f9e2e7e.x86_64 from @modulefailsafe
 
   - nothing provides module(platform:el8) needed by module nginx:1.14:8040020210610090123:9f9e2e7e.x86_64 from @modulefailsafe
  Problème 3: requêtes conflictuelles
+
  Problem 3: conflicting requests
 
   - nothing provides module(platform:el8) needed by module perl:5.26:8050020211109115414:b4937e53.x86_64 from @modulefailsafe
 
   - nothing provides module(platform:el8) needed by module perl:5.26:8050020211109115414:b4937e53.x86_64 from @modulefailsafe
  Problème 4: requêtes conflictuelles
+
  Problem 4: conflicting requests
 
   - nothing provides module(platform:el8) needed by module perl-IO-Socket-SSL:2.066:8090020231016070024:88fd4976.x86_64 from @modulefailsafe
 
   - 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
+
  Problem 5: conflicting requests
 
   - nothing provides module(platform:el8) needed by module perl-libwww-perl:6.34:8090020231016070052:8af8375c.x86_64 from @modulefailsafe
 
   - 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
+
  Problem 6: conflicting requests
   - nothing provides module(platform:el8) needed by module php:8.0:8100020231211162605:3924b0c1.x86_64 from @modulefailsafe
+
   - nothing provides module(platform:el8) needed by module php:7.4:8100020241211195618:3924b0c1.x86_64 from @modulefailsafe
  Problème 7: requêtes conflictuelles
+
  Problem 7: conflicting requests
 
   - nothing provides module(platform:el8) needed by module python36:3.6:8100020250603161425:5ae887d0.x86_64 from @modulefailsafe
 
   - nothing provides module(platform:el8) needed by module python36:3.6:8100020250603161425:5ae887d0.x86_64 from @modulefailsafe
Dépendances résolues.
+
No match for argument: rpmconf
Rien à faire.
+
No match for argument: yum-utils
Terminé !
+
No packages marked for removal.
 +
Dependencies resolved.
 +
Nothing to do.
 +
Complete!
 
</pre>
 
</pre>
 
Nous allons automatiser la remise à zéro de tous les paquetages en erreur.
 
Nous allons automatiser la remise à zéro de tous les paquetages en erreur.
Ligne 156 : Ligne 124 :
 
On peut maintenant faire une boucle qui va exécuter le ''reset'':
 
On peut maintenant faire une boucle qui va exécuter le ''reset'':
 
<pre>
 
<pre>
for rpm in $RPMS;do dnf -y module reset $rpm;done
+
# for rpm in $RPMS;do dnf -y module reset $rpm;done
 +
</pre>
 +
 
 +
= 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ésents sur la machine :
 +
<pre>
 +
# dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync
 +
</pre>
 +
== Paquetages incompatibles ==
 +
Si jamais la fin de la commande précédente affiche:
 +
<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>
 +
vous avez un souci de paquetage en conflit, ici le paquetage ''iptables''.
 +
Il vous faudra désinstaller le paquetage problématique et installer la nouvelle version. Pour faire ça nous allons utiliser deux variables:
 +
<pre>
 +
# TO_REMOVE=$(dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync 2>&1 | grep conflicts | awk -F ' ' '{print $NF}')
 +
# TO_INSTALL=$(dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync 2>&1 | grep conflicts | awk -F ' ' '{print $6}')
 +
</pre>
 +
On vérifie le contenu de nos variables:
 +
<pre>
 +
# echo $TO_REMOVE
 +
iptables-ebtables-1.8.5-11.el8.x86_64
 +
# echo $TO_INSTALL
 +
iptables-nft-1.8.10-11.el9_5.x86_64
 +
</pre>
 +
On va utiliser une boucle pour automatiser la désinstallation...
 +
<pre>
 +
for rpm in $TO_REMOVE; do dnf -y remove --allowerasing $rpm; done
 +
</pre>
 +
... et l'installation:
 +
<pre>
 +
for rpm in $TO_INSTALL; do dnf -y install --allowerasing $rpm; done
 
</pre>
 
</pre>
Maintenant la commande ''update'' devrait passer sans erreurs:
+
On peut enfin faire la mise à jour :
 
<pre>
 
<pre>
# dnf -y update
+
# dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync
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>
 
</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) :
 
<pre>
 
<pre>
Ligne 185 : Ligne 182 :
 
VERSION_ID="9.6"
 
VERSION_ID="9.6"
 
</pre>
 
</pre>
'''Félicitation, vous êtes passé à Rocky 9 !'''
+
'''Félicitations, vous êtes passé à Rocky 9 !'''

Version actuelle datée du 17 novembre 2025 à 13:28

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 garantit une compatibilité entre les différents logiciels en figeant leurs versions. Après un certain temps, ces logiciels deviennent trop vieux et leurs mises à jour ne sont pas possibles sans un changement de version de Rocky !

Warning-icon.png

Ce tutoriel va utiliser une bonne quantité de mémoire vive avec le commande dnf, vous devez vous assurer que votre machine ou conteneur en possède suffisamment.

1Go de RAM pour une machine virtuelle ou un conteneur est un minimum !

Warning-icon.png

Soyez sûr de faire une sauvegarde des données présentes 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 va supprimer le logo RedHat :

# rm -rf /usr/share/redhat-logos

Et certains paquetages qui peuvent poser problème lors de la mise à jour :

# dnf -y remove rpmconf yum-utils

Paquetages incompatibles

En exécutant la commande précédente, il est possible que vous ayez des conflits comme, par exemple, ceux ci-dessous:

# dnf -y remove rpmconf yum-utils
Modular dependency problems:

 Problem 1: conflicting requests
  - nothing provides module(platform:el8) needed by module httpd:2.4:8100020250908140623:e155f54d.x86_64 from @modulefailsafe
 Problem 2: conflicting requests
  - nothing provides module(platform:el8) needed by module nginx:1.14:8040020210610090123:9f9e2e7e.x86_64 from @modulefailsafe
 Problem 3: conflicting requests
  - nothing provides module(platform:el8) needed by module perl:5.26:8050020211109115414:b4937e53.x86_64 from @modulefailsafe
 Problem 4: conflicting requests
  - nothing provides module(platform:el8) needed by module perl-IO-Socket-SSL:2.066:8090020231016070024:88fd4976.x86_64 from @modulefailsafe
 Problem 5: conflicting requests
  - nothing provides module(platform:el8) needed by module perl-libwww-perl:6.34:8090020231016070052:8af8375c.x86_64 from @modulefailsafe
 Problem 6: conflicting requests
  - nothing provides module(platform:el8) needed by module php:7.4:8100020241211195618:3924b0c1.x86_64 from @modulefailsafe
 Problem 7: conflicting requests
  - nothing provides module(platform:el8) needed by module python36:3.6:8100020250603161425:5ae887d0.x86_64 from @modulefailsafe
No match for argument: rpmconf
No match for argument: yum-utils
No packages marked for removal.
Dependencies resolved.
Nothing to do.
Complete!

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

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ésents sur la machine :

# dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync

Paquetages incompatibles

Si jamais la fin de la commande précédente affiche:

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

vous avez un souci de paquetage en conflit, ici le paquetage iptables. Il vous faudra désinstaller le paquetage problématique et installer la nouvelle version. Pour faire ça nous allons utiliser deux variables:

# TO_REMOVE=$(dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync 2>&1 | grep conflicts | awk -F ' ' '{print $NF}')
# TO_INSTALL=$(dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync 2>&1 | grep conflicts | awk -F ' ' '{print $6}')

On vérifie le contenu de nos variables:

# echo $TO_REMOVE
iptables-ebtables-1.8.5-11.el8.x86_64
# echo $TO_INSTALL
iptables-nft-1.8.10-11.el9_5.x86_64

On va utiliser une boucle pour automatiser la désinstallation...

for rpm in $TO_REMOVE; do dnf -y remove --allowerasing $rpm; done

... et l'installation:

for rpm in $TO_INSTALL; do dnf -y install --allowerasing $rpm; done

On peut enfin faire la mise à jour :

# dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync

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élicitations, vous êtes passé à Rocky 9 !