8.2. Utiliser des paquets

Yum vous permet d'effectuer un ensemble complet d'opérations avec des paquets logiciels, y compris rechercher des paquets, d'afficher leurs informations, des les installer et de les supprimer.

8.2.1. Rechercher des paquets

Vous pouvez rechercher tous les noms, descriptions et résumés des paquets RPM en utilisant la commande suivante :
yum search term
Remplacez term par le nom du paquet que vous souhaitez rechercher.

Exemple 8.4. Rechercher les paquets correspondants à une chaîne spécifique

Pour répertorier tous les paquets qui correspondent à « vim » ou « gvim », or « emacs », veuillez saisir :
~]$ yum search vim gvim emacs
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
============================= N/S matched: vim ==============================
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor[sortie tronquée]

============================ N/S matched: emacs =============================
emacs.x86_64 : GNU Emacs text editor
emacs-auctex.noarch : Enhanced TeX modes for Emacs[sortie tronquée]

  Name and summary matches mostly, use "search all" for everything.
Warning: No matches found for: gvim
La commande yum search est utile pour rechercher des paquets dont vous ne connaissez pas le nom, mais dont vous connaissez un terme connexe. Remarquez que par défaut, yum search retourne les correspondances par nom de paquet et résumé, ce qui rend les recherches plus rapides. Veuillez utiliser la commande yum search all pour effectuer une recherche plus exhaustive mais également plus lente.

Filtrer les résultats

Toutes les commandes de la liste de yum vous permettent de filtrer les résultats en ajoutant une ou plusieurs expressions glob comme arguments. Les expressions glob sont des chaînes de caractères normales qui contiennent un ou plusieurs caractères génériques * (qui s'étend pour correspondre à tout sous-ensemble de caractères) et ? (qui s'étend pour correspondre à tout caractère unique).
Prenez soin d'échapper les expressions glob lorsque vous les passez en tant qu'argument sur une commande yum, sinon le shell Bash les interprétera comme des expansions de nom de fichier, et pourrait potentiellement faire passer tous les fichiers du répertoire actuel correspondant aux expressions globales sur yum. Pour vous assurer que les expressions glob soient passées sur yum comme souhaité, veuillez utiliser l'une des méthodes suivantes :
  • échappez les caractères génériques en les faisant précéder du caractère de la barre oblique inversée
  • mettez l'expression glob entre guillemets simples ou entre guillemets doubles.
Les exemples dans la section suivante démontrent l'usage de ces deux méthodes.

8.2.2. Répertorier les paquets

Pour répertorier des informations sur tous les paquets installés et disponibles, veuillez saisir ce qui suit dans l'invite shell :
yum list all
Pour répertorier les paquets installés et disponibles qui correspondent aux expressions glob insérées, veuillez utiliser la commande suivante :
yum list glob_expression

Exemple 8.5. Répertorier les paquets liés à ABRT

Les paquets avec divers modules complémentaires et greffons ABRT commencent par « abrt-addon- » ou par « abrt-plugin- ». Pour répertorier ces paquets, veuillez saisir la commande suivante à l'invite shell. Remarquez que les caractères génériques sont échappés avec le caractère de la barre oblique inversée :
~]$ yum list abrt-addon\* abrt-plugin\*
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Installed Packages
abrt-addon-ccpp.x86_64                   2.1.11-35.el7             @rhel-7-server-rpms
abrt-addon-kerneloops.x86_64             2.1.11-35.el7             @rhel-7-server-rpms
abrt-addon-pstoreoops.x86_64             2.1.11-35.el7             @rhel-7-server-rpms
abrt-addon-python.x86_64                 2.1.11-35.el7             @rhel-7-server-rpms
abrt-addon-vmcore.x86_64                 2.1.11-35.el7             @rhel-7-server-rpms
abrt-addon-xorg.x86_64                   2.1.11-35.el7             @rhel-7-server-rpms
Pour répertorier tous les paquets installés sur votre système, veuillez utiliser le mot-clé installed. La colonne la plus à droite dans la sortie répertorie le référentiel à partir duquel le paquet a été récupéré.
yum list installed glob_expression

Exemple 8.6. Répertorier tous les versions installées du paquet krb

L'exemple suivant montre comment répertorier tous les paquets installés qui commencent par « krb » suivis d'exactement un caractère et d'un tiret. Ceci est utile lorsque vous souhaitez répertorier toutes les versions d'un certain composant, car ceux-ci se distinguent par leur numéro. L'expression glob toute entière est citée pour assurer que le traitement soit correct.
~]$ yum list installed "krb?-*"
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Installed Packages
krb5-libs.x86_64                  1.13.2-10.el7                   @rhel-7-server-rpms
Pour répertorier tous les paquets dans des référentiels activés qui seraient disponibles à installer, veuillez utiliser la commande sous la forme suivante :
yum list available glob_expression

Exemple 8.7. Répertorier les greffons gstreamer disponibles

Par exemple, pour répertorier tous les paquets disponibless avec des noms qui contiennent « gstreamer » puis « plugin », veuillez exécuter la commande suivante :
~]$ yum list available gstreamer\*plugin\*
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Available Packages
gstreamer-plugins-bad-free.i686             0.10.23-20.el7         rhel-7-server-rpms
gstreamer-plugins-base.i686                 0.10.36-10.el7         rhel-7-server-rpms
gstreamer-plugins-good.i686                 0.10.31-11.el7         rhel-7-server-rpms
gstreamer1-plugins-bad-free.i686            1.4.5-3.el7            rhel-7-server-rpms
gstreamer1-plugins-base.i686                1.4.5-2.el7            rhel-7-server-rpms
gstreamer1-plugins-base-devel.i686          1.4.5-2.el7            rhel-7-server-rpms
gstreamer1-plugins-base-devel.x86_64        1.4.5-2.el7            rhel-7-server-rpms
gstreamer1-plugins-good.i686                1.4.5-2.el7            rhel-7-server-rpms

Répertorier les référentiels

Pour répertorier l'ID du référentiel, le nom, et le numéro des paquets de chaque référentiel activé sur votre système, veuillez utiliser la commande suivante :
yum repolist
Pour répertorier davantage d'informations sur ces référentiels, veuillez ajouter l'option -v. Avec cette option activée, les informations comprenant le nom du fichier, la taille générale, la date de la dernière mise à jour, et l'URL de base sont affichées pour chaque référentiel répertorié. Alternativement, vous pouvez utiliser la commande repoinfo qui produira la même sortie.
yum repolist -v
yum repoinfo 
Pour répertorier les référentiels activés et désactivés, veuillez utiliser la commande suivante. Une colonne de statut est ajoutée à la liste de sorties pour afficher quels sont les référentiels activés.
yum repolist all
En passant disabled en tant que premier argument, vous pouvez limiter la sortie de la commande aux référentiels désactivés. Pour des spécifications plus précises, vous pouvez passer l'ID ou le nom des référentiels ou des glob_expressions comme arguments. Remarquez que s'il y a une correspondance exacte entre l'ID ou le nom du référentiel et l'argument inséré, ce référentiel est répertorié, même s'il ne passe pas le filtre enabled ou disabled.

8.2.3. Afficher des informations sur le paquet

Pour afficher des informations sur un ou plusieurs paquets, veuillez utiliser la commande suivante (ici, les expressions glob sont également valides) :
yum info package_name
Remplacez package_name par le nom du paquet.

Exemple 8.8. Afficher des informations sur le paquet abrt

Pour afficher des informations sur le paquet abrt, veuillez saisir :
~]$ yum info abrt
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Installed Packages
Name        : abrt
Arch        : x86_64
Version     : 2.1.11
Release     : 35.el7
Size        : 2.3 M
Repo        : installed
From repo   : rhel-7-server-rpms
Summary     : Automatic bug detection and reporting tool
URL         : https://fedorahosted.org/abrt/
License     : GPLv2+
Description : abrt is a tool to help users to detect defects in applications and
            : to create a bug report with all information needed by maintainer to fix
            : it. It uses plugin system to extend its functionality.
La commande yum info package_name est similaire à la commande rpm -q --info package_name, mais elle fournit des informations supplémentaires, comme le nom du référentiel yum dans lequel le paquet RPM était installé (consultez la ligne From repo: dans la sortie).

Utiliser yumdb

Vous pouvez également effectuer des requêtes sur la base de données yum pour trouver d'autres informations utiles sur un paquet en utilisant la commande suivante :
yumdb info package_name
Cette commande fournit des informations supplémentaires sur un paquet, y compris le checksum du paquet (et l'algorithme utilisé pour le produire, comme SHA-256), la commande donnée sur la ligne de commande qui a été invoquée pour installer le paquet (s'il y en a une), et la raison pour laquelle le paquet est installé sur le système (où user indique une installation par l'utilisateur, et dep indique une installation pour raison de dépendance).

Exemple 8.9. Exécuter une requête yumdb pour trouver des informations sur le paquet yum

Pour afficher des informations supplémentaires sur le paquet yum, veuillez saisir :
~]$ yumdb info yum
Loaded plugins: langpacks, product-id
yum-3.4.3-132.el7.noarch
     changed_by = 1000
     checksum_data = a9d0510e2ff0d04d04476c693c0313a11379053928efd29561f9a837b3d9eb02
     checksum_type = sha256
     command_line = upgrade
     from_repo = rhel-7-server-rpms
     from_repo_revision = 1449144806
     from_repo_timestamp = 1449144805
     installed_by = 4294967295
     origin_url = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/Packages/yum-3.4.3-132.el7.noarch.rpm
     reason = user
     releasever = 7Server
     var_uuid = 147a7d49-b60a-429f-8d8f-3edb6ce6f4a1
Pour obtenir davantage d'informations sur la commande yumdb, veuillez consulter la page man de yumdb(8).

8.2.4. Installation de paquets

Pour installer un paquet unique et toutes ses dépendances non installées, veuillez saisir une commande sous la forme suivante en tant qu'utilisateur root :
yum install package_name
Vous pouvez également installer de multiples paquets simultanément en ajoutant leurs noms en tant qu'arguments. Pour faire cela, veuillez saisir en tant qu'utilisateur root :
yum install package_name package_name
Si vous installez des paquets sur un système multilib, tel que sur un ordinateur AMD64 ou Intel64, vous pourrez spécifier l'architecture du paquet (tant qu'il est disponible dans un référérentiel activé) en ajoutant .arch au nom du paquet :
yum install package_name.arch

Exemple 8.10. Installer des paquets sur un système multilib

Pour installer le paquet sqlite pour l'architecture i686, veuillez saisir :
~]# yum install sqlite.i686
Vous pouvez utiliser des expressions glob pour installer rapidement de multiples paquets avec des noms similaires. En tant qu'utilisateur root, veuillez exécuter :
yum install glob_expression

Exemple 8.11. Installer tous les greffons audacieux

Les expressions globales sont utiles lorsque vous souhaitez installer plusieurs paquets avec des noms similaires. Pour installer tous les greffons audacieux, veuillez utiliser la commande sous la forme suivante :
~]# yum install audacious-plugins-\*
En plus des noms de paquets et des expressions glob, vous pouvez également fournir des noms de fichier à yum install. Si vous connaissez le nom du binaire que vous souhaitez installer, mais pas son nom de paquet, vous pouvez donner le nom du chemin à yum install. En tant qu'utilisateur root, veuillez saisir :
yum install /usr/sbin/named
Yum effectue la recherche dans ses listes de paquets, trouve le paquet qui fournit /usr/sbin/named, s'il existe, et vous demande si vous souhaitez l'installer.
Comme vous pouvez le voir dans les exemples ci-dessus, la commande yum install ne requiert pas d'arguments strictement définis. Il peut traiter divers formats de noms de paquets et d'expressions glob, ce qui rend l'installation plus facile pour les utilisateurs. D'autre part, yum peut prendre longtemps à analyser l'entrée correctement, particulièrement si vous spécifiez un grand nombre de paquets. Pour optimiser la recherche de paquets, vous pouvez utiliser les commandes suivantes pour définir de manière explicite comment analyser les arguments :
yum install-n name
yum install-na name.architecture
yum install-nevra name-epoch:version-release.architecture
Avec install-n, yum interprète name comme étant le nom exact du paquet. La commande install-na indique à yum que l'argument suivant contient le nom du paquet et l'architecture divisés par le caractère « point ». Avec install-nevra, yum s'attendra à un argument sous la forme name-epoch:version-release.architecture. Similairement, vous pouvez utiliser yum remove-n, yum remove-na, et yum remove-nevra lorsque vous cherchez des paquets à supprimer.

Note

Si vous êtes sûr(e) de souhaiter installer le paquet contenant le binaire named, mais que vous ne savez pas dans quel répertoire bin/ ou sbin/ le fichier est installé, veuillez utiliser la commande yum provides avec une expression glob :
~]# yum provides "*bin/named"
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
              : manager
32:bind-9.9.4-14.el7.x86_64 : The Berkeley Internet Name Domain (BIND) DNS
                            : (Domain Name System) server
Repo        : rhel-7-server-rpms
Matched from:
Filename    : /usr/sbin/named
yum provides "*/file_name" est une astuce utile pour trouver le paquet ou les paquets qui contiennent le file_name.

Exemple 8.12. Processus d'installation

L'exemple suivant offre une vue d'ensemble d'une installation en utilisant yum. Pour télécharger et installer la dernière version du paquet httpd, veuillez exécuter en tant qu'utilisateur root :
~]# yum install httpd
Loaded plugins: langpacks, product-id, subscription-manager
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-12.el7 will be updated
---> Package httpd.x86_64 0:2.4.6-13.el7 will be an update
--> Processing Dependency: 2.4.6-13.el7 for package: httpd-2.4.6-13.el7.x86_64
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.4.6-12.el7 will be updated
---> Package httpd-tools.x86_64 0:2.4.6-13.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved
Après avoir exécuté la commande ci-dessus, yum charge les greffons nécessaires et exécute la vérification de transaction. Dans ce cas, httpd est déjà installé. Comme le paquet installé est plus ancien que la version disponible la plus récente, il sera mis à jour. La même chose s'applique au paquet httpd-tools dont httpd dépend. Puis, un résumé de la transaction est affiché :

================================================================================
 Package        Arch      Version                 Repository               Size
================================================================================
Updating:
 httpd          x86_64    2.4.6-13.el7            rhel-x86_64-server-7    1.2 M
Updating for dependencies:
 httpd-tools    x86_64    2.4.6-13.el7            rhel-x86_64-server-7     77 k

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

Total size: 1.2 M
Is this ok [y/d/N]:
Dans cette étape, yum vous demande de confirmer l'installation. Hormis les options y (oui) et N (non), vous pouvez également choisir d (télécharger uniquement) pour télécharger les paquets sans les installer directement. Si vous choisissez y, l'installation continuera avec les messages suivants jusqu'à ce qu'elle se termine.
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : httpd-tools-2.4.6-13.el7.x86_64                             1/4 
  Updating   : httpd-2.4.6-13.el7.x86_64                                   2/4 
  Cleanup    : httpd-2.4.6-12.el7.x86_64                                   3/4 
  Cleanup    : httpd-tools-2.4.6-12.el7.x86_64                             4/4 
  Verifying  : httpd-2.4.6-13.el7.x86_64                                   1/4 
  Verifying  : httpd-tools-2.4.6-13.el7.x86_64                             2/4 
  Verifying  : httpd-tools-2.4.6-12.el7.x86_64                             3/4 
  Verifying  : httpd-2.4.6-12.el7.x86_64                                   4/4 

Updated:
  httpd.x86_64 0:2.4.6-13.el7

Dependency Updated:
  httpd-tools.x86_64 0:2.4.6-13.el7

Complete!
Pour installer un paquet téléchargé au préalable se trouvant dans un répertoire local sur votre système, veuillez utiliser la commande suivante :
yum localinstall path
Remplacez path par le chemin du paquet que vous souhaitez installer.

8.2.5. Télécharger des paquets

Comme indiqué dans l'Exemple 8.12, « Processus d'installation », à un certain moment pendant le processus d'installation, il vous sera demandé de confirmer l'installation avec le message suivant :
...
Total size: 1.2 M
Is this ok [y/d/N]:    
...
With the d option, yum downloads the packages without installing them immediately. You can install these packages later offline with the yum localinstall command or you can share them with a different device. Downloaded packages are saved in one of the subdirectories of the cache directory, by default /var/cache/yum/$basearch/$releasever/packages/. The downloading proceeds in background mode so that you can use yum for other operations in parallel.

8.2.6. Supprimer des paquets

De même que pour l'installation de paquets, yum permet également de les désinstaller. Pour désinstaller un paquet particulier, ainsi que tout paquet en dépendant, veuillez exécuter la commande suivante en tant qu'utilisateur root :
yum remove package_name
Comme lors de l'installation de plusieurs paquets, il est possible d'en supprimer plusieurs à la fois en ajoutant des noms de paquets supplémentaires à la commande.

Exemple 8.13. Supprimer plusieurs paquets

Pour supprimer totem, veuillez saisir ce qui suit à l'invite shell :
~]# yum remove totem
Similairememt à install, remove peut prendre ces arguments :
  • noms de paquet
  • expressions glob
  • listes de fichiers
  • ce que le paquet fournit

Avertissement

Yum n'est pas en mesure de supprimer un paquet sans également supprimer les paquets qui en dépendent. Ce type d'opération, qui peut uniquement être effectué par RPM, n'est pas publicisé et peut potentiellement laisser votre système dans un état ne fonctionnant pas, ou causer à des applications de ne pas fonctionner correctement ou de tomber en panne. Pour obtenir des informations supplémentaires, veuillez consulter la Section A.2.2, « Désinstaller les paquets » dans le chapitre RPM.