Différences entre versions de « Upgrade rocky8to9 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 137 : Ligne 137 :
 
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>
== 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>

Version du 17 novembre 2025 à 10:41

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 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 epel-release

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é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 !