Interroger et mettre à jour des paquets avec YUM sous Linux

Red Hat Enterprise LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez acquérir les compétences essentielles pour gérer les paquets logiciels sur des systèmes Linux basés sur RHEL à l'aide du gestionnaire de paquets YUM. Vous commencerez par inspecter les détails et les dépendances des paquets actuellement installés en utilisant les commandes yum list et yum deplist. Vous explorerez également les dépôts de logiciels configurés sur votre système avec yum repolist pour comprendre l'origine de vos logiciels et ce qui est disponible.

En vous appuyant sur ces bases, vous vous concentrerez ensuite sur la maintenance et les mises à jour du système. Vous apprendrez à utiliser yum check-update pour identifier les paquets disposant de versions plus récentes. Enfin, vous vous exercerez à appliquer ces mises à jour, en apprenant à distinguer la mise à jour d'un paquet spécifique de la mise à jour complète du système pour maintenir votre environnement sécurisé et à jour.

Inspecter un paquet installé avec 'yum list' et 'yum deplist'

Dans cette étape, vous apprendrez à inspecter les paquets installés à l'aide de yum, le gestionnaire de paquets par défaut pour CentOS et d'autres distributions Linux basées sur RHEL. Nous commencerons par examiner le paquet bash, qui fournit l'environnement shell que vous utilisez probablement. Ces commandes vous aident à comprendre ce qui est installé sur votre système et de quels autres composants un paquet dépend pour fonctionner.

Tout d'abord, utilisons la commande yum list pour vérifier le statut d'un paquet spécifique. Cette commande peut vous indiquer si un paquet est installé et quelle version est présente sur votre système.

Pour rendre la vérification du laboratoire fiable, enregistrez la sortie de la commande dans /home/labex/project pendant que vous l'inspectez. Pour vérifier les détails du paquet bash, exécutez la commande suivante dans votre terminal :

sudo yum list bash | tee /home/labex/project/bash-package.txt

Vous verrez une sortie similaire à celle-ci, confirmant que bash est installé. Le symbole @ dans la colonne du dépôt (par exemple, @anaconda ou @System) indique un paquet installé.

Installed Packages
bash.x86_64    <version>    @anaconda

Ensuite, explorons le concept de dépendances. La plupart des paquets logiciels ne sont pas autonomes ; ils s'appuient sur d'autres paquets, tels que des bibliothèques ou des outils, pour fonctionner correctement. Ces paquets requis sont appelés dépendances. La commande yum deplist vous permet de voir une liste complète des dépendances pour un paquet donné.

Pour voir tous les paquets dont dépend le paquet bash, exécutez cette commande :

sudo yum deplist bash | tee /home/labex/project/bash-deplist.txt

La sortie listera chaque dépendance et le paquet qui la fournit. C'est crucial pour comprendre comment yum résout et gère les installations de logiciels.

package: bash.x86_64 <version>
  dependency: /bin/sh
   provider: bash.x86_64 <version>
  dependency: chkconfig
   provider: chkconfig.x86_64 <version>
  dependency: coreutils
   provider: coreutils.x86_64 <version>
  dependency: libc.so.6(GLIBC_2.15)(64bit)
   provider: glibc.x86_64 <version>
... (output truncated) ...

En utilisant yum list et yum deplist, vous pouvez obtenir une compréhension claire des paquets installés sur votre système et de leurs relations entre eux.

Explorer les dépôts et les paquets disponibles avec 'yum repolist'

Dans cette étape, vous apprendrez à explorer les sources de logiciels, appelées dépôts (repositories), que yum utilise pour trouver et installer des paquets. Vous apprendrez également à rechercher de nouveaux paquets disponibles pour une installation sur votre système.

Un dépôt de paquets est un emplacement de stockage centralisé où sont conservés les paquets logiciels. Lorsque vous demandez à yum d'installer un paquet, il contacte les dépôts configurés, télécharge les fichiers nécessaires et les installe sur votre système.

Pour voir une liste des dépôts actuellement activés sur votre système, vous pouvez utiliser la commande yum repolist. C'est utile pour vérifier quelles sources de logiciels sont actives.

Exécutez la commande suivante dans votre terminal et enregistrez la sortie pour une consultation ultérieure :

sudo yum repolist | tee /home/labex/project/yum-repolist.txt

La sortie affichera une liste des identifiants de dépôts, leurs noms et le nombre de paquets qu'ils contiennent. Elle ressemblera à ceci :

repo id                                                                                                                          repo name
rhui-rhel-9-for-x86_64-appstream-rhui-rpms                                                                                       Red Hat Enterprise Linux 9 for x86_64 - AppStream from RHUI (RPMs)
rhui-rhel-9-for-x86_64-baseos-rhui-rpms                                                                                          Red Hat Enterprise Linux 9 for x86_64 - BaseOS from RHUI (RPMs)

Maintenant que vous savez où yum cherche les paquets, découvrons quels paquets sont disponibles à l'installation. La commande yum list available affiche tous les paquets provenant de vos dépôts activés qui ne sont pas encore installés sur votre système.

Exécuter yum list available seul produirait une très longue liste. Il est plus pratique de rechercher quelque chose de spécifique. Recherchons les paquets disponibles liés au noyau Linux (kernel). Vous pouvez utiliser un caractère générique (*) pour faire correspondre plusieurs noms de paquets.

Exécutez cette commande pour lister tous les paquets disponibles commençant par kernel :

sudo yum list available 'kernel*' | tee /home/labex/project/yum-kernel-available.txt

Les guillemets simples autour de kernel* sont importants pour empêcher le shell d'essayer d'étendre lui-même le caractère générique. La sortie affichera une liste des paquets liés au noyau disponibles, leurs versions et le dépôt dont ils proviennent.

Available Packages
kernel-devel.x86_64      <version>      updates
kernel-doc.noarch        <version>      updates
kernel-headers.x86_64    <version>      updates
... (output truncated) ...

Ces commandes sont essentielles pour gérer les logiciels de votre système, vous permettant de voir vos sources de logiciels et de découvrir de nouveaux outils à installer.

Vérifier les mises à jour disponibles avec 'yum check-update'

Dans cette étape, vous apprendrez à vérifier les mises à jour logicielles disponibles pour les paquets installés sur votre système. Maintenir votre système à jour est une tâche critique pour la sécurité et la stabilité, car les mises à jour contiennent souvent des correctifs pour des vulnérabilités, des corrections de bugs et de nouvelles fonctionnalités.

La commande yum check-update offre un moyen sûr de voir quels paquets installés disposent de versions plus récentes dans les dépôts. Il est important de noter que cette commande ne fait que lister les mises à jour disponibles ; elle ne les télécharge ni ne les installe. Cela vous permet d'examiner les changements potentiels avant de les appliquer.

Pour vérifier toutes les mises à jour disponibles sur votre système, exécutez la commande suivante dans votre terminal. La partie || true empêche le shell de s'arrêter lorsque yum check-update renvoie le statut 100, qui est la façon dont yum signale que des mises à jour sont disponibles.

sudo yum check-update | tee /home/labex/project/yum-check-update.txt || true

yum va maintenant se connecter à tous vos dépôts activés, rafraîchir son cache local d'informations sur les paquets et comparer les versions de vos paquets installés avec les dernières versions disponibles.

Si des mises à jour sont disponibles, vous verrez une liste, similaire à l'exemple suivant. Chaque ligne affiche le nom du paquet, la nouvelle version et le dépôt à partir duquel il sera mis à jour.

bind-libs.x86_64                 <version>      updates
bind-license.noarch              <version>      updates
curl.x86_64                      <version>      updates
glibc.x86_64                     <version>      updates
glibc-common.x86_64              <version>      updates
... (output truncated) ...

Si votre système est déjà entièrement à jour, la commande se terminera sans lister aucun paquet. Cette commande est un élément essentiel de la maintenance de routine du système, vous donnant une image claire de l'état de votre système avant de procéder au processus de mise à jour proprement dit dans les étapes suivantes.

Appliquer une mise à jour de paquet unique avec 'yum update '

Dans cette étape, vous allez appliquer une mise à jour de paquet spécifique. À l'étape précédente, vous avez utilisé yum check-update pour voir une liste de tous les paquets ayant des mises à jour disponibles. Bien qu'il soit courant de mettre à jour l'ensemble du système en une seule fois, il existe des situations où vous pourriez vouloir mettre à jour un seul paquet. Cela vous donne plus de contrôle sur les changements du système.

Choisissons un paquet dans la liste que vous avez vue précédemment pour le mettre à jour. Nous utiliserons curl comme exemple, qui est un outil courant pour le transfert de données. Si curl ne figurait pas dans votre liste de mises à jour disponibles, vous pouvez choisir un autre paquet dans cette liste.

Avant de mettre à jour le paquet, nous devons rétrograder (downgrade) le paquet curl vers une version pour laquelle une mise à jour est disponible.

sudo yum downgrade -y curl

Pour mettre à jour uniquement le paquet curl, exécutez la commande suivante :

sudo yum update curl | tee /home/labex/project/curl-update.txt

yum va maintenant résoudre les dépendances pour curl, déterminer ce qui doit être mis à jour et vous présenter un résumé de la transaction. Ce résumé montre quels paquets seront mis à jour et la taille totale du téléchargement.

Resolving Dependencies
--> Running transaction check
---> Package curl.x86_64 0:<old_version> will be updated
---> Package curl.x86_64 0:<new_version> will be an update
--> Processing Dependency: libcurl = <new_version> for package: curl-<new_version>.x86_64
--> Running transaction check
---> Package libcurl.x86_64 0:<old_version> will be updated
---> Package libcurl.x86_64 0:<new_version> will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package      Arch         Version              Repository                 Size
================================================================================
Updating:
 curl         x86_64       <new_version>        updates                    <size>
Updating for dependencies:
 libcurl      x86_64       <new_version>        updates                    <size>

Transaction Summary
================================================================================
Upgrade  1 Package (+1 Dependent package)

Total download size: <total_size>
Is this ok [y/d/N]:

Examinez les changements. Si vous êtes prêt à continuer, tapez y et appuyez sur Entrée. yum téléchargera et installera alors les mises à jour.

Une fois le processus terminé, vous verrez un message "Complete!", confirmant que la mise à jour a réussi.

...
Running transaction
  Updating   : libcurl-<new_version>.x86_64                                 1/4
  Updating   : curl-<new_version>.x86_64                                    2/4
  Cleanup    : curl-<old_version>.x86_64                                    3/4
  Cleanup    : libcurl-<old_version>.x86_64                                 4/4
  Verifying  : curl-<new_version>.x86_64                                    1/4
  ...

Updated:
  curl.x86_64 <new_version>

Dependency Updated:
  libcurl.x86_64 <new_version>

Complete!

Vous avez maintenant mis à jour avec succès un seul paquet et ses dépendances. Cette approche ciblée est utile pour appliquer des correctifs de sécurité spécifiques ou des mises à jour de fonctionnalités sans effectuer une mise à niveau complète du système.

Effectuer une mise à jour complète du système avec 'yum update'

Dans cette étape, vous effectuerez la tâche de gestion de paquets la plus courante et la plus importante : une mise à jour complète du système. Bien que la mise à jour de paquets individuels soit utile, la mise à jour régulière de tous les logiciels de votre système est cruciale pour maintenir la sécurité, la stabilité et bénéficier des dernières fonctionnalités et corrections de bugs.

La commande yum update, lorsqu'elle est exécutée sans spécifier de nom de paquet, vérifiera tous les paquets installés par rapport aux versions disponibles dans vos dépôts activés et mettra à jour chaque paquet pour lequel une version plus récente est trouvée.

Avertissement : Ce processus peut télécharger une grande quantité de données et peut prendre un temps considérable, selon le nombre de mises à jour disponibles et la vitesse de votre connexion réseau.

Pour commencer la mise à jour complète du système, exécutez la commande suivante dans votre terminal :

sudo yum update | tee /home/labex/project/full-system-update.txt

De manière similaire à la mise à jour d'un seul paquet, yum résoudra d'abord toutes les dépendances, puis vous présentera un résumé de la transaction. Cette liste sera probablement beaucoup plus longue qu'auparavant, car elle inclut chaque paquet devant être mis à jour.

Resolving Dependencies
--> Running transaction check
... (many packages listed) ...

Dependencies Resolved

================================================================================
 Package               Arch         Version              Repository        Size
================================================================================
Updating:
 bind-libs             x86_64       <version>            updates           <size>
 bind-license          noarch       <version>            updates           <size>
 glibc                 x86_64       <version>            updates           <size>
 glibc-common          x86_64       <version>            updates           <size>
 ... (many more packages) ...

Transaction Summary
================================================================================
Upgrade  <X> Packages

Total download size: <total_size>
Is this ok [y/d/N]:

Examinez attentivement la liste des paquets à mettre à jour. Lorsque vous êtes prêt à continuer, tapez n pour ignorer la mise à jour, car cela prendrait trop de temps de mettre à jour tous les paquets dans cet environnement d'entraînement.

Vous avez maintenant examiné la transaction de mise à jour complète du système sans l'appliquer. Dans une véritable fenêtre de maintenance, vous relanceriez sudo yum update et taperiez y lorsque vous seriez prêt à installer toutes les mises à jour disponibles.

Résumé

Dans ce laboratoire, vous avez appris les fondamentaux de la gestion des paquets logiciels sur un système Linux basé sur RHEL à l'aide du gestionnaire de paquets YUM. Vous avez commencé par inspecter un paquet installé avec yum list pour vérifier son statut et sa version, puis vous avez utilisé yum deplist pour examiner ses dépendances. Vous avez également exploré les sources de logiciels configurées en listant tous les dépôts actifs avec la commande yum repolist.

Le laboratoire vous a ensuite guidé à travers le processus de mise à jour des paquets. Vous avez appris à vérifier les mises à jour disponibles sur l'ensemble du système sans les installer en utilisant yum check-update. Vous vous êtes exercé à appliquer une mise à jour spécifique à un seul paquet avec yum update <package>, et vous avez conclu en examinant la transaction de mise à jour complète du système avec la commande yum update afin de pouvoir reconnaître ce qu'une mise à niveau complète du système impliquerait avant de l'approuver.