Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Chapitre 8. Yum

Yum est le gestionnaire de paquets de Red Hat qui peut rechercher des informations sur les paquets disponibles, extraire des paquets de référentiels, les installer et les désinstallez, et mettre à jour un système complet à la dernière version disponible. Yum assure la résolution de dépendances automatiquement lorsque l'on met à jour, installe ou supprime des paquets, et donc, est capable de déterminer, chercher et installer tous les paquets dépendants disponibles automatiquement.
Yum peut être configuré avec des référentiels ou sources de paquets supplémentaires, et fournit également de nombreux greffons qui améliorent et étendent ses capacités. Yum est capable d'effectuer de nombreuses tâches que RPM peut effectuer. De plus, bon nombre des options de ligne de commande sont similaires. Yum permet une gestion des paquets simple et aisée sur une même machine ou sur un groupe de machines.
Les sections suivantes assument que votre système a été enregistré avec Red Hat Subscription Management au moment de l'intallation selon les instructions qui se trouvent dans Red Hat Enterprise Linux 7 Installation Guide. Si votre système n'est pas enregistré, consulter Chapitre 6, Enregistrer le système et Gérer les abonnements.

Important

Yum fournit une gestion de paquets sécurisée grâce à l'activation d'un contrôle de signatures GPG (de l'anglais Gnu Privacy Guard ; également connu sous le nom GnuPG) sur tous les référentiels de paquets (sources de paquets), ou sur des référentiels individuels. Lorsque le contrôle des signatures est activé, yum refusera d'installer tous les paquets qui ne sont pas signés-GPG avec la clé appropriée pour ce référentiel. Cela signifie que vous pouvez être rassurés que les paquets RPM que vous téléchargez et installez sur votre système sont d'une source fiable, comme Red Hat et qu'ils n'ont pas été modifiés pendant le transfert. Voir Section 8.5, « Configurer Yum et les référentiels Yum  » pour plus d'informations sur l'activation du contrôle de signature avec yum, ou Section A.3.2, « Vérification des signatures de paquets » pour plus d'informations sur la façon de travailler et vérifier des paquets GPG RPM signés GPG, en général.
Yum vous permet également d'installer aisément vos propres référentiels de paquets RPM pour pouvoir les télécharger et les installer sur d'autres machines. Quand c'est possible, yum utilise le téléchargement parallèle de plusieurs packages et métadonnées pour accélérer le téléchargement.
Apprendre comment yum opère est un investissement rentable car c'est souvent le moyen le plus rapide pour effectuer des tâches d'administration de système, et il fournit des fonctionnalités qui vont au-delà de celles fournies par les outils graphiques de gestion de paquets de PackageKit.

Note

Vous devez disposer des privilèges de superutilisateur pour utiliser yum afin d'installer, mettre à jour ou supprimer des paquets sur votre système. Tous les exemples de ce chapitre supposent que vous avez déjà obtenu des privilèges de superutilisateur en utilisant la commande su ou sudo.

8.1. Recherche et Mise à jour des paquets

Yum vous permet de vérifier si votre système possède des mises à jour en attente d'être appliquées. Vous pouvez lister les paquets qui ont besoin d'être mis à jour et les mettre à jour ensemble, ou bien, vous pouvez mettre à jour des packages idividuels.

8.1.1. Vérifier les mises à jour

Pour voir quels paquets installés sur votre système disposent de mises à jour disponibles, veuillez utiliser la commande suivante :
yum check-update

Exemple 8.1. Exemple de sortie de la commande yum check-update :

La sortie de yum check-update peut être similaire à la suivante :
~]# yum check-update
Loaded plugins: product-id, search-disabled-repos, subscription-manager
dracut.x86_64                         033-360.el7_2      rhel-7-server-rpms
dracut-config-rescue.x86_64           033-360.el7_2      rhel-7-server-rpms
kernel.x86_64                         3.10.0-327.el7     rhel-7-server-rpms
rpm.x86_64                            4.11.3-17.el7      rhel-7-server-rpms
rpm-libs.x86_64                       4.11.3-17.el7      rhel-7-server-rpms
rpm-python.x86_64                     4.11.3-17.el7      rhel-7-server-rpms
yum.noarch                            3.4.3-132.el7      rhel-7-server-rpms
Les paquets dans la sortie ci-dessus sont répertoriées comme ayant des mises à jour disponibles,. Le premier paquet de la liste est dracut. Chaque ligne dans l'exemple de sortie consiste en plusieurs lignes, dans le cas de dracut :
  • dracut — nom du paquet
  • x86_64 — architecture du CPU pour laquelle le paquet a été créé,
  • 0.5.8 — version du paquet mis à jour à installer,
  • 360.el7 — version du paquet mis à jour,
  • _2 — version ajoutée dans le cadre de la mise à jour z-stream,
  • rhel-7-server-rpms — référentiel dans lequel le paquet mis à jour se trouve.
La sortie montre également que l'on peut mettre à jour le noyau (le paquet kernel), yum et RPM (paquets yum et rpm), ainsi que leurs dépendances (tels que les paquets rpm-libs, et rpm-python), tout en utilisant la commande yum.

8.1.2. Mise à jour de paquets

Vous pouvez choisir de mettre à jour un paquet unique, de multiples paquets, ou tous les paquets à la fois. Si l'une des dépendances du ou des paquets que vous mettez à jour possède elle-même des mises à jour disponibles, alors elle sera également mise à jour.

Mise à jour d'un paquet unique

Pour mettre à jour un paquet unique, veuillez exécuter la commande suivante en tant qu'utilisateur root :
yum update package_name

Exemple 8.2. Mise à jour du paquet rpm

Pour mettre à jour le paquet rpm, veuillez saisir :
~]# yum update rpm
Loaded plugins: langpacks, product-id, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package rpm.x86_64 0:4.11.1-3.el7 will be updated
--> Processing Dependency: rpm = 4.11.1-3.el7 for package: rpm-libs-4.11.1-3.el7.x86_64
--> Processing Dependency: rpm = 4.11.1-3.el7 for package: rpm-python-4.11.1-3.el7.x86_64
--> Processing Dependency: rpm = 4.11.1-3.el7 for package: rpm-build-4.11.1-3.el7.x86_64
---> Package rpm.x86_64 0:4.11.2-2.el7 will be an update
--> Running transaction check
...
--> Finished Dependency Resolution

Dependencies Resolved
=============================================================================
 Package                   Arch        Version         Repository       Size
=============================================================================
Updating:
 rpm                       x86_64      4.11.2-2.el7    rhel            1.1 M
Updating for dependencies:
 rpm-build                 x86_64      4.11.2-2.el7    rhel            139 k
 rpm-build-libs            x86_64      4.11.2-2.el7    rhel             98 k
 rpm-libs                  x86_64      4.11.2-2.el7    rhel            261 k
 rpm-python                x86_64      4.11.2-2.el7    rhel             74 k

Transaction Summary
=============================================================================
Upgrade  1 Package (+4 Dependent packages)

Total size: 1.7 M
Is this ok [y/d/N]:
Cette sortie contient plusieurs éléments présentant un interêt particulier :
  1. Loaded plugins: langpacks, product-id, subscription-manager — Yum vous informe toujours quels greffons yum sont installés et activés. Veuillez consulter la Section 8.6, « Greffons Yum » pour des informations générales sur les greffons yum, ou la Section 8.6.3, « Utiliser des greffons Yum » pour des descriptions de greffons particuliers.
  2. rpm.x86_64 — il est possible de télécharger et d'installer un nouveau paquet rpm ainsi que ses dépendances. Une vérification de transaction est effectuée pour chacun de ces paquets.
  3. Yum présente les informations de mise à jour et vous demande de confirmer la mise à jour ; yum est exécuté interactivement par défaut. Si vous savez déjà quelles transactions la commande yum planifie d'effectuer, vous pouvez utiliser l'option -y pour répondre automatiquement oui (« yes ») à toute question posée par yum (dans ce cas, l'exécution n'est pas interactive). Cependant, vous devriez toujours examiner les changements que yum planifie d'effectuer sur le système afin de pouvoir facilement résoudre tout problème qui se pose. Il est également possible de télécharger le paquet sans l'installer. Pour faire cela, veuillez sélectionner l'option d dans l'invite du téléchargement. Cela lance le téléchargement en arrière-plan du paquet sélectionné.
    Si une transaction échoue, vous pouvez afficher l'historique des transactions yum en utilisant la commande yum history comme décrit dans la Section 8.4, « Utiliser l'historique des transactions ».

Important

Yum installe toujours un nouveau noyau, que vous utilisez la commande yum update ou yum install.
D'autre part, lors de l'utilisation de RPM, il est important d'utiliser la commande rpm -i kernel qui installe un nouveau noyau, au lieu de rpm -u kernel qui remplace le noyau actuel. Veuillez consulter la Section A.2.1, « Installation et mise à niveau des paquets » pour obtenir davantage d'informations sur l'installation et la mise à niveau de noyaux avec RPM.
Similairement, il est possible de mettre à jour un groupe de paquets. Veuillez saisir en tant qu'utilisateur root :
yum group update group_name
Remplacez ici group_name par le nom du groupe de paquets que vous souhaitez mettre à jour. Pour obtenir davantage d'informations sur les groupes de paquets, veuillez consulter la Section 8.3, « Utiliser des groupes de paquets ».
Yum offre également la commande upgrade qui est égale à update avec une option de configuration obsoletes (veuillez consulter la Section 8.5.1, « Définir les options [main] »). Par défaut, obsoletes est activé dans /etc/yum.conf, ce qui rend ces deux commandes équivalentes.

Mettre à jour tous les paquets et leurs dépendances

Pour mettre à jour tous les paquets et leurs dépendances, veuillez utiliser la commande yum update sans aucun argument :
yum update
Si les paquets ont des mises à jour de sécurité, vous ne pourrez les mettre à jour qu'à leur dernière version. Veuillez saisir en tant qu'utilisateur root :
yum update --security
Vous pouvez également mettre ces paquets à jour aux versions contenant les dernières mises à jour en matière de sécurité. Pour cela, veuillez saisir en tant qu'utilisateur root :
yum update-minimal --security
Ainsi, dans la mesure où :
  • le paquet kernel-3.10.0-1 est installé sur votre système ;
  • le paquet kernel-3.10.0-2 est une mise à jour de sécurité ;
  • la paquet kernel-3.10.0-3 est une mise à jour de correctif,
Ensuite, yum update-minimal --security mettra à jour le paquet à kernel-3.10.0-2, et yum update --security mettra à jour le paquet à kernel-3.10.0-3.

8.1.3. Préserver les changements au fichier de configuration

Vous apporterez inévitablement des modifications aux fichiers de configuration installés par des paquets pendant l'utilisation de votre système Red Hat Enterprise Linux. RPM, que yum utilise pour apporter des modifications au système, fournit un mécanisme pour assurer leur intégrité. Veuillez consulter la Section A.2.1, « Installation et mise à niveau des paquets » pour obtenir des détails sur la manière de gérer les changements apportés aux fichiers de configuration pendant les mises à niveau de paquets.

8.1.4. Mise à jour du système hors ligne avec ISO et Yum

Pour les systèmes disconnectés de l'Internet ou de Red Hat Network, utiliser la commande yum update avec l'image ISO d'installation de Red Hat Enterprise Linux est un façon simple et rapide de mettre à niveau les systèmes à la dernière version mineure. Les étapes suivantes nous montrent le processus de mise à niveau :
  1. Créer un répertoire cible dans lequel monter votre image ISO. Le répertoire n'est pas créé automatiquement lors du montage, donc, il vous faudra le créer avant de procéder à l'étape suivante. En tant qu'utilisateur root, saisissez :
    mkdir mount_dir
    Remplacer mount_dir par un chemin menant au répertoire de montage. Normalement, les utilisateurs le créent en tant que sous-répertoire du répertoire /media.
  2. Monter l'image ISO d'installation de Red Hat Enterprise Linux 7 dans le répertoire cible préalablement créé. En tant qu'utilisateur root, saisir :
    mount -o loop iso_name mount_dir
    Remplacez iso_name par le nom du chemin de votre image ISO et mount_dir par le nom du chemin du répertoire cible. Là, l'option -o loop est exigée pour pouvoir monter le fichier en tant que périphérique bloc.
  3. Copier le fichier media.repo du répertoire de montage /etc/yum.repos.d/. Notez que les fichiers de configuration de ce répertoire doivent posséder l'extension .repo pour pouvoir fonctionner correctement.
    cp mount_dir/media.repo /etc/yum.repos.d/new.repo
    Cela créera un fichier de configuration pour le référentiel yum. Remplacer new.repo par le nom du fichier, comme par exemple rhel7.repo.
  4. Modifiez le nouveau fichier de configuration de façon à ce qu'il puisse pointer vers l'ISO d'installation de Red Hat Enterprise Linux. Ajouter la ligne suivante au fichier /etc/yum.repos.d/new.repo :
    baseurl=file:///mount_dir
    Remplacez mount_dir par un chemin qui mène au point de montage.
  5. Mettez à jour tous les référentiels yum, y compris /etc/yum.repos.d/new.repo créé dans les étapes précédentes. En tant qu'utilisateur root, saisissez :
    yum update
    Cela mettra à jour votre système à la version fournie par l'image ISO montée.
  6. Après la mise à niveau, vous pourrez dé-monter l'image ISO. En tant qu'utilisateur root, saisissez :
    umount mount_dir
    avec mount_dir comme chemin qui mène à votre répertoire de montage. Aussi, vous pourrez supprimer le répertoire de montage créé dans la première étape. En tant qu'utilisateur root, saisissez :
    rmdir mount_dir
  7. Si vous ne souhaitez pas utiliser le fichier de configuration déjà créé pour une autre installation ou mise à jour, vous pouvez le supprimer. En tant qu'utilisateur root, saisissez :
    rm /etc/yum.repos.d/new.repo

Exemple 8.3. Mise à niveau de Red Hat Enterprise Linux 7.0 à 7.1

Si vous devez mettre à niveau un système et que vous n'ayiez pas accès à l'internet, en utilisant une image ISO contenant la dernière version du système, appelée, par exemple rhel-server-7.1-x86_64-dvd.iso, créer un répertoire cible de montage, comme /media/rhel7/. En tant qu'utilisateur root, allez dans le répertoire avec votre image ISO et saisissez :
~]# mount -o loop rhel-server-7.1-x86_64-dvd.iso /media/rhel7/
Puis, créez un référentiel yum pour votre image en copiant le fichier media.repo à partir du répertoire de montage :
~]# cp /media/rhel7/media.repo /etc/yum.repos.d/rhel7.repo
Pour que yum reconnaisse le point de montage comme référentiel, ajouter la ligne suivante au fichier /etc/yum.repos.d/rhel7.repo copié dans l'étape précédente :
baseurl=file:///media/rhel7/
Miantenant, en mettant à jour le référentiel yum, vous mettez ainsi votre système à jour à la version fournie par rhel-server-7.1-x86_64-dvd.iso. En tant qu'utilisateur root, exécutez :
~]# yum update
Une fois que votre système sera mis à jour, vous pourrez dé-monter l'image, supprimer le répertoire cible et le fichier de configuration :
~]# umount /media/rhel7/
~]# rmdir /media/rhel7/
~]# rm /etc/yum.repos.d/rhel7.repo