Mises à niveau des versions de Rocky Linux
OU Comment dupliquer n'importe quelle machine Rocky Linux.
Introduction¶
Depuis le premier jour du projet Rocky Linux, certains ont demandé : Comment passer de CentOS 7 à Rocky 8, ou de Rocky 8 à Rocky 9 ? La réponse est toujours la même : Le projet NE prend PAS en charge les mises à niveau AUTOMATIQUEs d'une version majeure vers une autre version majeure. Vous devez réinstaller pour passer à la version majeure suivante. Pour être clair, c'EST** la bonne réponse. Ce document espère donner aux utilisateurs une méthode pour passer d'une version majeure à la suivante, en utilisant la procédure prise en charge par Rocky pour une nouvelle installation. Vous pouvez également utiliser cette méthode pour effectuer une reconstruction complète avec la même version de Rocky Linux. Par exemple, 9.5 vers une nouvelle installation 9.5 avec tous les packages.
Mises en garde
Même en suivant cette procédure, de nombreux problèmes peuvent survenir lors du passage d'une ancienne version d'un système d'exploitation (OS) à une version plus récente du même système d'exploitation ou d'un système d'exploitation différent. Les programmes deviennent obsolètes, remplacés par des nouveaux portant des noms de paquets complètement différents, ou les noms ne correspondent tout simplement pas d'un système d'exploitation à l'autre. De plus, vous devez connaître en détail les référentiels de logiciels de votre machine et également vérifier qu'ils sont toujours fonctionnels pour le nouveau système d'exploitation. Si vous passez d'une version beaucoup plus ancienne à une version beaucoup plus récente, assurez-vous que votre processeur et les autres exigences de votre machine correspondent à la nouvelle version. Pour ces raisons et bien d'autres, vous devez rester prudent et noter toute erreur ou tout problème lors de l'exécution de cette procédure. Ici, l'auteur a utilisé Rocky Linux 8 comme ancienne version et Rocky Linux 9 comme nouvelle version majeure. La formulation de tous les exemples utilise ces deux versions. Procédez toujours à vos propres risques et périls.
Récapitulatif des Étapes¶
- Établir une liste complète des utilisateurs de l'ancienne installation (
userid.txt
) ainsi que des relations de groupes correspondantes. - Établir une liste des référentiels de l'ancienne installation (
repolist.txt
). - Établir une liste des packages de l'ancienne installation (
installed.txt
). - Sauvegardez toutes les données, configurations, utilitaires et scripts de l'ancienne installation vers un emplacement non volatile avec les fichiers
.txt
créés. - Vérifiez que le matériel que vous allez installer prend bien en charge le système d’exploitation que vous installez. (CPU, mémoire, espace disque, etc.)
- Effectuez une nouvelle installation du système d’exploitation que vous voulez utiliser sur le matériel.
- Effectuez une
dnf upgrade
obtenir tous les packages qui pourraient avoir été mis à jour depuis la création du fichier ISO. - Créez tous les utilisateurs nécessaires en examinant le fichier
userid.txt
. - Installez tous les référentiels manquants qui ne sont pas liés à Rocky Linux dans le fichier
repolist.txt
. (Voir les notes relatives aux référentiels EPEL et Code Ready Builder – CRB –.) - Installez les packages en utilisant la procédure du fichier
installed.txt
.
Detail des Étapes¶
Mise à niveau de la même version
Comme indiqué précédemment, cette procédure devrait fonctionner aussi bien pour dupliquer une installation sur une machine avec la même version du système d'exploitation, comme 8.10 vers 8.10 ou 9.5 vers 9.5. La différence est que vous ne devriez pas avoir besoin de `--skip-broken` lors de l'installation des paquets à partir du fichier `installed.txt`. Si vous obtenez des erreurs de paquet lors de l'installation d'une version, il vous manque probablement un référentiel. Arrêtez la procédure et réexaminez le fichier `repolist.txt`. Les exemples ici utilisent 8.10 comme ancienne installation et 9.5 comme nouvelle.
La version 10 n'est pas encore connue
En raison des vastes changements entre la version 9.5 et la prochaine version 10, cette procédure **pourrait ne pas fonctionner** pour passer de la version 9.5 à la version 10. L'exploration de cette question aura lieu une fois qu'une version 10 sera disponible à tester.
Ancienne machine dans l'exemple¶
L'ancienne machine utilisée ici tourne sous Rocky Linux 8. L'installation comprend plusieurs packages de référentiel Extra Packages for Enterprise Linux (EPEL
).
Code Ready Builder
Le référentiel `Code Ready Builder` (CRB) de Rocky Linux 9 remplace les fonctionnalités du référentiel PowerTools obsolète qui existait dans la version 8. Si vous passez d'une version 8 à une version 9 où vous disposez de l'`EPEL`, vous devrez activer le `CRB` sur votre nouvelle machine avec les éléments suivants :
```bash
sudo dnf config-manager --enable crb
```
Établir la liste des utilisateurs¶
Vous devrez créer manuellement tous les utilisateurs sur la nouvelle machine, vous devez donc savoir quels comptes d'utilisateurs et leurs groupes vous devrez créer. Les comptes d'utilisateurs commencent généralement à l'ID utilisateur 1000 et augmentent progressivement.
sudo getent passwd > userid.txt
Établir une liste détaillée des dépôts¶
Vous avez besoin d'une liste des dépôts qui existent sur l'ancienne machine :
sudo ls -al /etc/yum.repos.d/ > repolist.txt
Établir une liste détaillée des paquets¶
Générez la liste des packages avec la commande suivante :
sudo dnf list installed | awk 'NR>1 {print $1}' | sort -u > installed.txt
Ici, le NR>1
élimine l'enregistrement en tête de la colonne, qui contient Installed
provenant de la commande dnf list installed
. Ce n'est pas un package, vous n'en avez donc pas besoin. La directive {print $1}
signifie utiliser uniquement la première colonne. Vous n'avez pas besoin de la version du package ou du référentiel d'où il provient dans la liste.
Vous n’aurez pas besoin d’installer de packages liés au noyau. Cela ne fait pas de mal de les réinstaller si vous omettez cette étape. Vous pouvez supprimer les lignes du noyau avec :
sudo sed -i '/kernel/d' installed.txt
Sauvegarde complète¶
Cela peut englober beaucoup de choses. Assurez-vous de connaître en détail l’objectif de la machine que vous remplacez et tous ses composants de programme (base de données, serveur de messagerie, DNS, etc.). Dans le doute, effectuez une sauvegarde complète des données en question.
Copie de Fichiers¶
Copiez les fichiers texte que vous avez créés dans un emplacement non volatile ainsi que toutes les données de sauvegarde.
Nouvelle machine dans l'exemple¶
Votre nouvelle installation de Rocky Linux 9 est terminée. Vous devez obtenir toutes les mises à jour de packages depuis la création de l'image ISO :
sudo dnf upgrade
Vous êtes prêt à commencer à copier vos fichiers texte et vos sauvegardes à partir de l'endroit où vous les avez stockés dans la procédure précédente.
Création des utilisateurs¶
Examinez le fichier userid.txt
et créez les utilisateurs dont vous avez besoin sur la nouvelle machine.
Installation des dépôts¶
Examinez le fichier repolist.txt
et installez manuellement les référentiels dont vous avez besoin. Vous pouvez ignorer les dépôts liés à Rocky Linux. N'oubliez pas que vous disposez des packages de l'EPEL, vous aurez donc besoin du référentiel CRB plutôt que de PowerTools :
sudo dnf config-manager --enable crb
Installation du dépôt EPEL :
sudo dnf install epel-release
Installez tous les autres référentiels du fichier repolist.txt
qui ne sont pas basés sur Rocky Linux ou EPEL.
Installation des paquets¶
Une fois l'installation des référentiels terminée, essayez d'installer vos packages à partir du fichier installed.txt
:
sudo dnf -y install $(cat installed.txt)
Certains packages n'existeront plus lors du passage de Rocky Linux 8 à Rocky Linux 9, quels que soient les référentiels que vous avez activés. L’exécution de cette commande vous donne une idée de ce que sont ces packages.
Voici ce qui n'a pas été installé sur la machine de test de l'auteur (réorganisé sous forme de colonne plutôt que d'une longue chaîne) :
Error: Unable to find a match:
OpenEXR-libs.x86_64
bind-export-libs.x86_64
dhcp-libs.x86_64
fontpackages-filesystem.noarch
hardlink.x86_64
ilmbase.x86_64
libXxf86misc.x86_64
libcroco.x86_64
libmcpp.x86_64
libreport-filesystem.x86_64
mcpp.x86_64
network-scripts.x86_64
platform-python.x86_64
platform-python-pip.noarch
platform-python-setuptools.noarch
xorg-x11-font-utils.x86_64
Remarque
Si vous avez besoin des fonctionnalités de ces packages manquants sur votre nouvelle installation, enregistrez-les dans un fichier pour une utilisation ultérieure. Vous pouvez voir l'état de disponibilité des packages manquants en utilisant cette commande :
```bash
sudo dnf whatprovides [package_name]
```
Exécutez à nouveau la commande, mais cette fois en ajoutant l'option --skip-broken
:
sudo dnf -y install $(cat installed.txt) --skip-broken
Étant donné que vous venez d’effectuer de nombreuses modifications, vous devez redémarrer le système avant de continuer.
Restauration de vos sauvegardes¶
Une fois tous les packages installés, restaurez vos sauvegardes, fichiers de configuration modifiés, scripts et autres utilitaires que vous avez sauvegardés avant de passer à votre nouvelle machine.
Conclusion¶
Il n'existe pas de routine magique (prise en charge par Rocky Linux) pour passer d'une version majeure à une autre. Les développeurs de Rocky Linux prennent uniquement en charge une toute nouvelle installation. La routine fournie ici vous permet de passer d'une version majeure à une autre tout en respectant les meilleures pratiques de l'équipe Rocky Linux.
Cette procédure suppose une installation relativement simple. Cependant, la complexité éventuelle de votre installation peut nécessiter des étapes supplémentaires. Utilisez cette procédure comme un guide que vous devez adapter soigneusement à votre cas d'utilisation.
Disclaimer¶
Bien que le document de base soit celui de l'auteur, deux personnes du [Forum] (https://forums.rockylinux.org/t/boot-too-small-rebuild/17415) ont suggéré une manière plus propre de générer le fichier installed.txt
en éliminant les packages du noyau. Merci à tous ceux qui ont contribué à l'élaboration de cet exemple de procédure.
Author: Steven Spencer
Contributors: Ganna Zhyrnova