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 paquetx86_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 :
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.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.- 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'optiond
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 commandeyum 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
Mettre à jour des paquets liés à la sécurité
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 :
- 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_dirRemplacer 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
. - 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_dirRemplacez 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. - 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. - 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. - 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'utilisateurroot
, saisissez :yum
update
Cela mettra à jour votre système à la version fournie par l'image ISO montée. - Après la mise à niveau, vous pourrez dé-monter l'image ISO. En tant qu'utilisateur
root
, saisissez :umount
mount_diravec 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'utilisateurroot
, saisissez :rmdir
mount_dir - 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