Différences entre versions de « Upgrade rocky8to9 »
| (10 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 | + | 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 | + | 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 | + | 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 | + | On va supprimer le logo RedHat : |
<pre> | <pre> | ||
| − | # | + | # rm -rf /usr/share/redhat-logos |
</pre> | </pre> | ||
| − | + | Et certains paquetages qui peuvent poser problème lors de la mise à jour : | |
<pre> | <pre> | ||
| − | + | # dnf -y remove rpmconf yum-utils | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | # dnf -y - | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</pre> | </pre> | ||
== Paquetages incompatibles == | == Paquetages incompatibles == | ||
| − | + | En exécutant la commande précédente, il est possible que vous ayez des conflits comme, par exemple, ceux ci-dessous: | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<pre> | <pre> | ||
| − | # dnf -y | + | # 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 | - 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 | - 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 | - 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 | - 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 | - 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: | + | - 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 | - 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! | ||
</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 155 : | 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> | ||
| − | + | On peut enfin faire la mise à jour : | |
<pre> | <pre> | ||
| − | # dnf -y | + | # dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync |
| − | |||
| − | |||
| − | |||
| − | |||
</pre> | </pre> | ||
| − | + | = 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 177 : | Ligne 175 : | ||
Et vérifier la mise à niveau avec la même commande qu'au début de ce tutoriel: | Et vérifier la mise à niveau avec la même commande qu'au début de ce tutoriel: | ||
<pre> | <pre> | ||
| − | + | # cat /etc/os-release | |
NAME="Rocky Linux" | NAME="Rocky Linux" | ||
VERSION="9.6 (Blue Onyx)" | VERSION="9.6 (Blue Onyx)" | ||
| Ligne 184 : | Ligne 182 : | ||
VERSION_ID="9.6" | VERSION_ID="9.6" | ||
</pre> | </pre> | ||
| − | ''' | + | '''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 !
|
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 ! |
|
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:
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 !