Table des matières

Yum Package Management

Yellowdog Updater Modifier (yum) est un gestionnaire de paquets basé sur RPM qui est utilisé pour installer et mettre à jour des paquets dans diverses distributions Linux, y compris CentOS, RHEL et Fedora.

Yum est assez puissant car il est capable de résoudre automatiquement les problèmes de dépendance, et il est similaire aux autres gestionnaires de paquets tels que «apt» dans les distributions basées sur Debian.

Installer un nouveau package à partir du référentiel

La commande yum peut être utilisée pour installer des packages à partir d’un référentiel avec l’argument 'install', suivi du nom du package. Dans l'exemple ci-dessous, nous installons Apache, fourni dans le package “httpd”.

[root@srv ~]# yum install httpd
Modules complémentaires chargés : fastestmirror
Loading mirror speeds from cached hostfile
 * base: fr2.rpmfind.net
 * epel: fr2.rpmfind.net
 * extras: centos.mirror.fr.planethoster.net
 * updates: miroir.univ-lorraine.fr
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet httpd.x86_64 0:2.4.6-80.el7.centos.1 sera installé
--> Résolution des dépendances terminée
 
Dépendances résolues
 
==================================================================================================================
 Package               Architecture           Version                               Dépôt                   Taille
==================================================================================================================
Installation :
 httpd                 x86_64                 2.4.6-80.el7.centos.1                 updates                 2.7 M
 
Résumé de la transaction
==================================================================================================================
Installation   1 Paquet
 
Taille totale des téléchargements : 2.7 M
Taille d'installation : 9.4 M
Is this ok [y/d/N]: y
Downloading packages:
httpd-2.4.6-80.el7.centos.1.x86_64.rpm                                                     | 2.7 MB  00:00:17
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : httpd-2.4.6-80.el7.centos.1.x86_64                                                           1/1
  Vérification : httpd-2.4.6-80.el7.centos.1.x86_64                                                           1/1
 
Installé :
  httpd.x86_64 0:2.4.6-80.el7.centos.1
 
Terminé !

Assumer yes

Dans le premier exemple, nous avons été invités à appuyer sur la touche «y» pour continuer l'installation. Plutôt que d'invité à chaque fois l'utilisateur à saisir “yes”, nous pouvons simplement spécifier l'option “-y” dans notre commande pour que yes soit accepté. De cette façon, nous ne serons pas invités à entrer des données et yum supposera que tout sera validé.

[root@srv ~]# yum install httpd-manual -y
Modules complémentaires chargés : fastestmirror
Loading mirror speeds from cached hostfile
 * base: fr2.rpmfind.net
 * epel: fr2.rpmfind.net
 * extras: centos.mirror.fr.planethoster.net
 * updates: miroir.univ-lorraine.fr
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet httpd-manual.noarch 0:2.4.6-80.el7.centos.1 sera installé
--> Résolution des dépendances terminée
 
Dépendances résolues
 
==================================================================================================================
 Package                    Architecture         Version                              Dépôt                 Taille
==================================================================================================================
Installation :
 httpd-manual               noarch               2.4.6-80.el7.centos.1                updates               1.3 M
 
Résumé de la transaction
==================================================================================================================
Installation   1 Paquet
 
Taille totale des téléchargements : 1.3 M
Taille d'installation : 5.5 M
Downloading packages:
httpd-manual-2.4.6-80.el7.centos.1.noarch.rpm                                              | 1.3 MB  00:00:08
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : httpd-manual-2.4.6-80.el7.centos.1.noarch                                                    1/1
  Vérification : httpd-manual-2.4.6-80.el7.centos.1.noarch                                                    1/1
 
Installé :
  httpd-manual.noarch 0:2.4.6-80.el7.centos.1
 
Terminé !

Notez que dans cet exemple, nous n'avons pas été invités à entrer “yes”, car le paramètre “-y” a été fourni, donc le package a été complètement installé sans aucune autre intervention de l'utilisateur.

Vérifier les mises à jour disponibles

Nous pouvons exécuter yum avec l'argument “check-update”. Cela va vérifier avec les référentiels déclaré les mises à jours disponibles pour toutes les packages que nous avons installés. Cela n'effectue en réalité aucune mise à jour, cela nous donne simplement une liste de paquets pour lesquels des mises à jour sont disponibles.

[root@srv ~]# yum check-update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 
bash.x86_64                             4.2.46-20.el7_2        updates
dbus.x86_64                             1:1.6.12-14.el7_2      updates
dbus-libs.x86_64                        1:1.6.12-14.el7_2      updates
device-mapper-persistent-data.x86_64    0.6.2-1.el7_2          updates
glibc.x86_64                            2.17-106.el7_2.8       updates
glibc-common.x86_64                     2.17-106.el7_2.8       updates
initscripts.x86_64                      9.49.30-1.el7_2.3      updates
kernel.x86_64                           3.10.0-327.28.3.el7    updates
kernel-tools.x86_64                     3.10.0-327.28.3.el7    updates
kernel-tools-libs.x86_64                3.10.0-327.28.3.el7    updates
...

Mettre à jour le nouveau package à partir du référentiel

Dans l'exemple précédent, nous avons reçu une liste des packages pour lesquels des mises à jour de package sont actuellement disponibles. Nous pouvons effectuer la mise à jour d'un package spécifique en le déclarant après l'argument “update”, comme indiqué ci-dessous.

[root@srv ~]# yum update bash -y
Resolving Dependencies
--> Running transaction check
---> Package bash.x86_64 0:4.2.46-19.el7 will be updated
---> Package bash.x86_64 0:4.2.46-20.el7_2 will be an update
--> Finished Dependency Resolution
 
Dependencies Resolved
 
=================================================================
 Package         Arch       Version             Repository   Size
=================================================================
Updating:
 bash            x86_64     4.2.46-20.el7_2     updates     1.0 M
 
Transaction Summary
=================================================================
Upgrade  1 Package
 
Total download size: 1.0 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
bash-4.2.46-20.el7_2.x86_64.rpm        | 1.0 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : bash-4.2.46-20.el7_2.x86_64            1/2
  Cleanup    : bash-4.2.46-19.el7.x86_64              2/2
  Verifying  : bash-4.2.46-20.el7_2.x86_64            1/2
  Verifying  : bash-4.2.46-19.el7.x86_64              2/2
 
Updated:
  bash.x86_64 0:4.2.46-20.el7_2
 
Complete!

Notez que nous n'avons pas besoin de lancer check-update avant cela.

Bien que nous puissions mettre à jour les paquets spécifiés de cette manière, il est souvent plus facile d’appliquer simplement toutes les mises à jour disponibles pour tous les paquets du système avec «yum update».

Télécharger le fichier RPM du package

Plutôt que d'installer un package à partir du référentiel comme indiqué précédemment, nous pouvons éventuellement télécharger le fichier .rpm à partir du référentiel avec la commande “yumdownloader”.

La commande “yumdownloader” provient du package “yum-utils”, nous l'installons donc en premier.

[root@srv ~]# yum install yum-utils -y

Nous pouvons maintenant télécharger le fichier RPM sur le système local.

[root@srv ~]# yumdownloader unbound
Modules complémentaires chargés : fastestmirror
Loading mirror speeds from cached hostfile
 * base: fr2.rpmfind.net
 * epel: fr2.rpmfind.net
 * extras: centos.mirror.fr.planethoster.net
 * updates: miroir.univ-lorraine.fr
unbound-1.6.6-1.el7.x86_64.rpm                                                             | 673 kB  00:00:04
 
[root@srv ~]# ls -al
total 680
-rw-r--r--. 1 root root 689232 25 avril 13:49 unbound-1.6.6-1.el7.x86_64.rpm

Effectuer l'installation locale du fichier RPM

Dans cet exemple, nous allons installer le fichier .rpm que nous venons de télécharger avec “yumdownloader”. Bien que nous ayons pu installer ce paquet directement depuis le dépôt avec 'yum install', il se peut que vous receviez directement des fichiers .rpm pour l'installation.

Bien que les fichiers .rpm puissent être installés avec la commande “rpm”, l'utilisation de yum présente l'avantage de détecter et d'installer automatiquement toutes les dépendances de paquetage éventuellement requises.

[root@srv ~]# yum localinstall unbound-1.6.6-1.el7.x86_64.rpm
Modules complémentaires chargés : fastestmirror
Examen de unbound-1.6.6-1.el7.x86_64.rpm : unbound-1.6.6-1.el7.x86_64
Sélection de unbound-1.6.6-1.el7.x86_64.rpm pour installation
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet unbound.x86_64 0:1.6.6-1.el7 sera installé
--> Traitement de la dépendance : unbound-libs(x86-64) = 1.6.6-1.el7 pour le paquet : unbound-1.6.6-1.el7.x86_64
Loading mirror speeds from cached hostfile
 * base: fr2.rpmfind.net
 * epel: fr2.rpmfind.net
 * extras: centos.mirror.fr.planethoster.net
 * updates: miroir.univ-lorraine.fr
--> Traitement de la dépendance : libevent-2.0.so.5()(64bit) pour le paquet : unbound-1.6.6-1.el7.x86_64
--> Traitement de la dépendance : libunbound.so.2()(64bit) pour le paquet : unbound-1.6.6-1.el7.x86_64
--> Lancement de la transaction de test
---> Le paquet libevent.x86_64 0:2.0.21-4.el7 sera installé
---> Le paquet unbound-libs.x86_64 0:1.6.6-1.el7 sera installé
--> Résolution des dépendances terminée
 
Dépendances résolues
 
==================================================================================================================
 Package                 Architecture      Version                   Dépôt                                  Taille
==================================================================================================================
Installation :
 unbound                 x86_64            1.6.6-1.el7               /unbound-1.6.6-1.el7.x86_64            2.4 M
Installation pour dépendances :
 libevent                x86_64            2.0.21-4.el7              base                                   214 k
 unbound-libs            x86_64            1.6.6-1.el7               base                                   405 k
 
Résumé de la transaction
==================================================================================================================
Installation   1 Paquet (+2 Paquets en dépendance)
 
Taille totale  : 3.0 M
Taille totale des téléchargements : 619 k
Taille d'installation : 4.2 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): unbound-libs-1.6.6-1.el7.x86_64.rpm                                                 | 405 kB  00:00:01
(2/2): libevent-2.0.21-4.el7.x86_64.rpm                                                    | 214 kB  00:00:02
------------------------------------------------------------------------------------------------------------------
Total                                                                             239 kB/s | 619 kB  00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : libevent-2.0.21-4.el7.x86_64                                                                 1/3
  Installation : unbound-libs-1.6.6-1.el7.x86_64                                                              2/3
  Installation : unbound-1.6.6-1.el7.x86_64                                                                   3/3
  Vérification : libevent-2.0.21-4.el7.x86_64                                                                 1/3
  Vérification : unbound-1.6.6-1.el7.x86_64                                                                   2/3
  Vérification : unbound-libs-1.6.6-1.el7.x86_64                                                              3/3
 
Installé :
  unbound.x86_64 0:1.6.6-1.el7
 
Dépendances installées :
  libevent.x86_64 0:2.0.21-4.el7                         unbound-libs.x86_64 0:1.6.6-1.el7
 
Terminé !

Désinstallation du package

Les packages peuvent être désinstallés avec l'argument “remove”, comme indiqué ci-dessous.

[root@srv ~]# yum remove httpd
Modules complémentaires chargés : fastestmirror
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet httpd.x86_64 0:2.4.6-80.el7.centos.1 sera effacé
--> Traitement de la dépendance : httpd = 2.4.6-80.el7.centos.1 pour le paquet : httpd-manual-2.4.6-80.el7.centos.1.noarch
--> Lancement de la transaction de test
---> Le paquet httpd-manual.noarch 0:2.4.6-80.el7.centos.1 sera effacé
--> Résolution des dépendances terminée
 
Dépendances résolues
 
==================================================================================================================
 Package                    Architecture         Version                             Dépôt                  Taille
==================================================================================================================
Suppression :
 httpd                      x86_64               2.4.6-80.el7.centos.1               @updates               9.4 M
Suppression pour dépendances :
 httpd-manual               noarch               2.4.6-80.el7.centos.1               @updates               5.5 M
 
Résumé de la transaction
==================================================================================================================
Supprimer  1 Paquet (+1 Paquet en dépendance)
 
Taille d'installation : 15 M
Est-ce correct [o/N] : o
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Suppression  : httpd-manual-2.4.6-80.el7.centos.1.noarch                                                    1/2
  Suppression  : httpd-2.4.6-80.el7.centos.1.x86_64                                                           2/2
  Vérification : httpd-manual-2.4.6-80.el7.centos.1.noarch                                                    1/2
  Vérification : httpd-2.4.6-80.el7.centos.1.x86_64                                                           2/2
 
Supprimé :
  httpd.x86_64 0:2.4.6-80.el7.centos.1
 
Dépendances supprimées :
  httpd-manual.noarch 0:2.4.6-80.el7.centos.1
 
Terminé !

Notez que pour supprimer un paquet, tous les autres paquets qui en dépendent seront également supprimés. Pour cette raison, il est recommandé de ne pas utiliser l'option -y pour “assumer” lors de la suppression d'un paquet afin que vous ayez une chance de lire ce qui sera supprimé avant de continuer.

Dans l'exemple ci-dessus, le package httpd-manual que nous avons installé précédemment requiert le package httpd. Par conséquent, lorsque nous supprimons le package httpd, httpd-manual doit également disparaître.

Réinstaller le package

Si vous rencontrez un problème avec un package, vous pouvez facilement le réinstaller avec l'argument de réinstallation.

[root@srv ~]# yum reinstall httpd -y
Modules complémentaires chargés : fastestmirror
Loading mirror speeds from cached hostfile
 * base: fr2.rpmfind.net
 * epel: fr2.rpmfind.net
 * extras: centos.mirror.fr.planethoster.net
 * updates: miroir.univ-lorraine.fr
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet httpd.x86_64 0:2.4.6-80.el7.centos.1 sera réinstallé
--> Résolution des dépendances terminée
 
Dépendances résolues
 
==================================================================================================================
 Package               Architecture           Version                               Dépôt                   Taille
==================================================================================================================
Réinstallation :
 httpd                 x86_64                 2.4.6-80.el7.centos.1                 updates                 2.7 M
 
Résumé de la transaction
==================================================================================================================
Réinstallation  1 Paquet
 
Taille totale des téléchargements : 2.7 M
Taille d'installation : 9.4 M
Downloading packages:
httpd-2.4.6-80.el7.centos.1.x86_64.rpm                                                     | 2.7 MB  00:00:16
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : httpd-2.4.6-80.el7.centos.1.x86_64                                                           1/1
  Vérification : httpd-2.4.6-80.el7.centos.1.x86_64                                                           1/1
 
Installé :
  httpd.x86_64 0:2.4.6-80.el7.centos.1
 
Terminé !

Cela revient à effectuer un “yum remove” suivi d'un “yum install”, mais ici, c'est fait dans une commande et la configuration personnalisée n'est pas supprimée, car un “yum remove” supprimera tous les fichiers de configuration gérés par le package.

Afficher les informations de package

De plus amples informations sur un paquet peuvent être visualisées avec l'argument “info”. Comme indiqué ci-dessous, cela nous fournit des informations utiles telles que l'architecture, le numéro de version, le numéro de version, la taille totale, ainsi qu'une description de ce que fait réellement le package.

[root@srv ~]# yum info httpd
Modules complémentaires chargés : fastestmirror
Loading mirror speeds from cached hostfile
 * base: fr2.rpmfind.net
 * epel: fr2.rpmfind.net
 * extras: centos.mirror.fr.planethoster.net
 * updates: miroir.univ-lorraine.fr
Paquets installés
Nom                 : httpd
Architecture        : x86_64
Version             : 2.4.6
Révision            : 80.el7.centos.1
Taille              : 9.4 M
Dépôt               : installed
Depuis le dépôt     : updates
Résumé              : Apache HTTP Server
URL                 : http://httpd.apache.org/
Licence             : ASL 2.0
Description         : The Apache HTTP Server is a powerful, efficient, and extensible
                    : web server.

Cela peut être utilisé avant qu'un paquet soit installé ou après l'installation, les mêmes informations seront fournies dans les deux situations.

Afficher l'historique des transactions

L'historique yum contient toutes les actions effectuées par la commande yum. Cela nous permet de voir ce qui est arrivé à notre système Linux au fil du temps, et même de défaire, refaire ou annuler une transaction.

[root@srv ~]# yum history
Modules complémentaires chargés : fastestmirror
ID     | Identifiant utilisateur  | Date et heure    | Action         | Modifié
-------------------------------------------------------------------------------
    17 | root <root>              | 2018-08-31 00:33 | Reinstall      |    1
    16 | root <root>              | 2018-08-31 00:32 | Install        |    1
    15 | root <root>              | 2018-08-31 00:18 | Erase          |    2
    14 | root <root>              | 2018-08-31 00:17 | Install        |    3
    13 | root <root>              | 2018-08-31 00:12 | Install        |    4
    12 | root <root>              | 2018-08-31 00:01 | Install        |    1
    11 | root <root>              | 2018-08-30 23:55 | Install        |    1
    10 | root <root>              | 2018-08-30 23:52 | Erase          |    1
     9 | root <root>              | 2018-08-30 22:45 | Install        |    2
     8 | root <root>              | 2018-08-30 01:11 | Install        |    1
     7 | root <root>              | 2018-08-29 23:52 | Install        |   22
     6 | root <root>              | 2018-08-29 23:51 | Install        |    1
     5 | root <root>              | 2018-08-29 23:44 | Install        |   33
     4 | root <root>              | 2018-08-29 23:17 | Install        |    5
     3 | root <root>              | 2018-08-29 23:06 | I, O, U        |  180 EE
     2 | root <root>              | 2018-08-29 22:55 | I, U           |    4
     1 | Système <indéfini>       | 2018-08-29 22:44 | Install        |  300
history list

Les transactions les plus récentes apparaissent en haut de la liste et nous pouvons afficher d'autres informations sur une transaction en spécifiant son ID, comme indiqué ci-dessous.

[root@srv ~]# yum history info 15
Modules complémentaires chargés : fastestmirror
ID de transaction : 15
Temps de début    : Fri Aug 31 00:18:14 2018
Début de RPMDB    : 376:014c46aa9236dc8cf53f117afcd8eb3f8e486348
Temps de fin :            00:18:15 2018 (1 secondes)
Fin de RPMDB : 374:7c085904f77a13a5727f37dd1e3063337141ce4d
Utilisateur  : root <root>
Code retour  : Réussi
Ligne de commande : remove httpd
Transaction effectuée avec :
    Installé     rpm-4.11.3-32.el7.x86_64                        @base
    Installé     yum-3.4.3-158.el7.centos.noarch                 @base
    Installé     yum-plugin-fastestmirror-1.1.31-46.el7_5.noarch @updates
Paquets modifiés :
    Supprimé httpd-2.4.6-80.el7.centos.1.x86_64        @updates
    Supprimé httpd-manual-2.4.6-80.el7.centos.1.noarch @updates
history info

La transaction la plus récente portant l'identifiant 15 a donc été utilisée pour supprimer le package httpd. Maintenant, nous pouvons annuler cette transaction si nous le souhaitons, qui devrait installer à nouveau le paquet httpd, car cela annulera la suppression.

[root@srv ~]# yum history undo 15 -y
Modules complémentaires chargés : fastestmirror
Undoing transaction 15, from Fri Aug 31 00:18:14 2018
    Supprimé httpd-2.4.6-80.el7.centos.1.x86_64        @updates
    Supprimé httpd-manual-2.4.6-80.el7.centos.1.noarch @updates
Loading mirror speeds from cached hostfile
 * base: fr2.rpmfind.net
 * epel: fr2.rpmfind.net
 * extras: centos.mirror.fr.planethoster.net
 * updates: miroir.univ-lorraine.fr
Le paquet httpd-2.4.6-80.el7.centos.1.x86_64 est déjà installé dans sa dernière version
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet httpd-manual.noarch 0:2.4.6-80.el7.centos.1 sera installé
--> Résolution des dépendances terminée
 
Dépendances résolues
 
==================================================================================================================
 Package                    Architecture         Version                              Dépôt                 Taille
==================================================================================================================
Installation :
 httpd-manual               noarch               2.4.6-80.el7.centos.1                updates               1.3 M
 
Résumé de la transaction
==================================================================================================================
Installation   1 Paquet
 
Taille totale des téléchargements : 1.3 M
Taille d'installation : 5.5 M
Downloading packages:
httpd-manual-2.4.6-80.el7.centos.1.noarch.rpm                                              | 1.3 MB  00:00:07
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installation : httpd-manual-2.4.6-80.el7.centos.1.noarch                                                    1/1
  Vérification : httpd-manual-2.4.6-80.el7.centos.1.noarch                                                    1/1
 
Installé :
  httpd-manual.noarch 0:2.4.6-80.el7.centos.1
 
Terminé !

Il convient également de noter que les installations, mises à jour ou suppressions de paquets sont également consignées dans le fichier /var/log/yum.log, voici un exemple de ce qui est consigné ici.

[root@srv ~]# tail /var/log/yum.log
Aug 31 00:12:16 Installed: libxml2-python-2.9.1-6.el7_2.3.x86_64
Aug 31 00:12:17 Installed: yum-utils-1.1.31-46.el7_5.noarch
Aug 31 00:17:08 Installed: libevent-2.0.21-4.el7.x86_64
Aug 31 00:17:09 Installed: unbound-libs-1.6.6-1.el7.x86_64
Aug 31 00:17:09 Installed: unbound-1.6.6-1.el7.x86_64
Aug 31 00:18:14 Erased: httpd-manual-2.4.6-80.el7.centos.1.noarch
Aug 31 00:18:14 Erased: httpd-2.4.6-80.el7.centos.1.x86_64
Aug 31 00:33:00 Installed: httpd-2.4.6-80.el7.centos.1.x86_64
Aug 31 00:33:27 Installed: httpd-2.4.6-80.el7.centos.1.x86_64
Aug 31 00:42:52 Installed: httpd-manual-2.4.6-80.el7.centos.1.noarch

Effacer les informations en cache

Par défaut, yum mettra en cache les données dans le répertoire /var/cache/yum, telles que les données de package et de référentiel. Cela accélère la tâche pour qu'il n'ait pas à continuer d'interroger ces informations sur Internet.

Il peut arriver que vous souhaitiez supprimer ces données mises en cache, par exemple si un référentiel contient des packages mis à jour, mais que votre système Linux comporte des données mises en cache incorrectes ou obsolètes, ce qui peut entraîner divers problèmes lors de l'installation d'un package.

[root@srv ~]# yum clean all
Modules complémentaires chargés : fastestmirror
Nettoyage des dépôts : base epel extras updates
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors

Cela supprimera tous les éléments mis en cache, il est possible de spécifier des éléments spécifiques à effacer (tels que les packages, métadonnées, expire-cache, rpmdb ou plugins), mais cela vous fait gagner beaucoup de temps si vous ne savez pas quoi supprimer.

Construire le cache

Le cache yum sera automatiquement construit avec le temps lorsque vous effectuerez diverses requêtes telles que l’installation ou la mise à jour de paquets, mais nous avons la possibilité de créer manuellement le cache pour que les actions futures soient plus rapides avec l’argument «makecache».

[root@srv ~]# time yum makecache
Loaded plugins: fastestmirror, langpacks
base                                            | 3.6 kB  00:00:00
extras                                          | 3.4 kB  00:00:00
updates                                         | 3.4 kB  00:00:00
(1/12): base/7/x86_64/group_gz                  | 155 kB  00:00:00
(2/12): extras/7/x86_64/prestodelta             |  72 kB  00:00:00
(3/12): extras/7/x86_64/filelists_db            | 426 kB  00:00:00
(4/12): extras/7/x86_64/primary_db              | 160 kB  00:00:00
(5/12): base/7/x86_64/filelists_db              | 6.2 MB  00:00:01
(6/12): extras/7/x86_64/other_db                | 652 kB  00:00:00
(7/12): base/7/x86_64/other_db                  | 2.3 MB  00:00:01
(8/12): updates/7/x86_64/prestodelta            | 698 kB  00:00:00
(9/12): base/7/x86_64/primary_db                | 5.3 MB  00:00:01
(10/12): updates/7/x86_64/filelists_db          | 4.4 MB  00:00:01
(11/12): updates/7/x86_64/primary_db            | 7.1 MB  00:00:01
(12/12): updates/7/x86_64/other_db              |  61 MB  00:00:07
Determining fastest mirrors
 * base: centos.mirror.crucial.com.au
 * extras: centos.mirror.crucial.com.au
 * updates: centos.mirror.crucial.com.au
Metadata Cache Created
 
real    0m40.785s
user    0m32.504s
sys     0m1.937s

Liste des packages installés

Nous avons la possibilité de lister tous les paquets actuellement installés sur notre système Linux avec «yum list installed». Je n'ai pas inclus la sortie complète ici car j'ai des centaines de paquets installés sur mon système, cependant ce petit extrait de code devrait vous donner une idée de ce à quoi vous attendre.

[root@srv ~]# yum list installed | head -n 15
Installed Packages
NetworkManager.x86_64                1:1.0.6-30.el7_2             @anaconda
NetworkManager-libnm.x86_64          1:1.0.6-30.el7_2             @anaconda
NetworkManager-team.x86_64           1:1.0.6-30.el7_2             @anaconda
NetworkManager-tui.x86_64            1:1.0.6-30.el7_2             @anaconda
NetworkManager-wifi.x86_64           1:1.0.6-30.el7_2             @anaconda
acl.x86_64                           2.2.51-12.el7                @anaconda
aic94xx-firmware.noarch              30-6.el7                     @anaconda
alsa-firmware.noarch                 1.0.28-2.el7                 @anaconda
alsa-lib.x86_64                      1.0.28-2.el7                 @anaconda
alsa-tools-firmware.x86_64           1.0.28-2.el7                 @anaconda
apr.x86_64                           1.4.8-3.el7                  @base
apr-util.x86_64                      1.5.2-6.el7                  @base
audit.x86_64                         2.4.1-5.el7                  @anaconda
...

Lorsqu'il est transféré dans la commande grep, il devient extrêmement puissant car il nous permet de rechercher un package spécifique pour voir s'il est installé.

[root@srv ~]# yum list installed | grep httpd
httpd.x86_64                         2.4.6-40.el7.centos.4          @updates
httpd-tools.x86_64                   2.4.6-40.el7.centos.4          @updates

Liste des packages disponibles

Dans l'exemple ci-dessus, nous avons appris à lister les paquets actuellement installés sur notre système Linux avec la commande yum, maintenant nous voulons pouvoir interroger un référentiel et répertorier ses packages disponibles à la place.

C'est assez similaire, sauf que nous remplaçons ‘installed’ par ‘available’ pour afficher tous les packages disponibles.

[root@srv ~]# yum list installed | wc -l
343
[root@srv ~]# yum list available | wc -l
8972

Groupes de paquets

Les packages liés entre eux peuvent être regroupés dans un groupe de packages. Cela nous permet d'installer, de mettre à jour ou de supprimer le groupe de paquets qui est réellement composé ou de nombreux autres paquets individuels.

Par exemple, nous pouvons lancer “yum grouplist” pour afficher les groupes disponibles par défaut.

[root@srv ~]# yum grouplist
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done

Une fois que nous avons la liste des groupes disponibles, nous pouvons utiliser ‘yum groupinfo’ sur chacun d’eux pour avoir une idée des paquets inclus dans le groupe.

[root@srv ~]# yum groupinfo "Basic Web Server"
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
 
Environment Group: Basic Web Server
 Environment-Id: web-server-environment
 Description: Server for serving static and dynamic internet content.
 Mandatory Groups:
   +base
   +core
   +web-server
 
[root@srv ~]# yum groupinfo "web-server"
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
 
Group: Web Server
 Group-Id: web-server
 Description: Allows the system to act as a web server, and run Perl and Python web applications.
 Mandatory Packages:
    httpd
 Default Packages:
   +crypto-utils
   +httpd-manual
   +mod_fcgid
   +mod_ssl

Installer les mises à jour de sécurité uniquement

Bien que nous puissions simplement effectuer une «mise à jour yum» pour mettre à jour tous nos packages installés vers les dernières versions, cela peut ne pas être idéal dans un environnement de production. L'installation de mises à jour de sécurité uniquement lors de l'application des correctifs peut être une exigence de votre environnement et peut être effectuée avec «yum update –security».

[root@srv ~]# yum update --security

Annexe

install

  Installer la dernière version d'un paquetage ou groupe de paquetages en s'assurant que toutes les dépendances soient satisfaites. Si aucun paquetage ne correspond au(x) nom(s) de paquetage fourni(s), on considère qu'il s'agit d'une expression générique du shell (avec des jokers) et toutes les correspondances sont installées. 

update

  Si aucun nom de paquetage n'est fourni avec la commande, update mettra à jour tous les paquetages actuellement installés. Si on fournit un ou plusieurs noms de paquetage, yum ne mettra à jour que les paquetages indiqués. Lors de la mise à jour des paquetages, yum s'assure que toutes les dépendances soient satisfaites. Si aucun paquetage ne correspond au(x) nom(s) de paquetage indiqué(s), on considère qu'il s'agit d'une expression générique du shell (avec des jokers) et toutes les correspondances sont installées.
  Si l'option --obsoletes est présente, yum incluera les paquetages obsolètes dans son analyse - cela rend plus facile les changements de numéro de version des distributions, par exemple, mettre à jour de MaDistributionLinux 8.0 vers MaDistributionLinux 9. 

check-update

  Vérifier si votre machine a besoin d'une mise à jour, sans la faire. Renvoie un code de retour de 100 si des mises à jours sont disponibles. Renvoie également une liste des paquetages disponibles pour la mise à jour. Renvoie un code de retour 0 si aucune mise à jour n'est nécessaire. 

upgrade

  Identique à la commande update combinée avec l'option --obsoletes. Voir update pour plus de détails. 

remove ou erase

  Supprimer du système le(s) paquetage(s) indiqué(s), supprimer également tous les paquetages qui en dépendent. 

list

  Afficher diverses informations sur les paquetages ; vous trouverez plus de détails sur cette commande dans la section OPTIONS DE LA COMMANDE LIST plus loin. 

provides ou whatprovides

  Chercher quel paquetage fournit telle fonctionnalité ou tel fichier. Utilisez simplement un nom particulier ou une expression générique shell (avec des jokers) pour afficher la liste des paquetages disponibles ou installés qui fournissent cette fonctionnalité ou ce fichier. 

search

  Chercher des paquetages dont la description, le résumé, le nom de l'empaqueteur ou le nom du paquetage correspond ou contient la chaîne indiquée. Très pratique pour chercher un paquetage dont vous ne connaissez pas le nom mais avez quelques mots clé s'y rapportant. 

info

  Afficher la description et le résumé des paquetages disponibles ; prend les mêmes arguments que la commande list (voir la section OPTIONS DE LA COMMANDE LIST plus loin). 

clean

  Effacer diverses choses qui s'accumulent dans le répertoire cache de yum au fil du temps. Plus de détails dans la section OPTIONS DE LA COMMANDE CLEAN plus loin. 

shell

  Entrer dans l'interpréteur de commande de yum. Si un nom de fichier est fourni en argument, le contenu de ce fichier est exécuté dans le mode « shell yum ». Voir yum-shell(8) pour plus d'informations. 

resolvedep

  Afficher les paquetages qui fournissent la (les) dépendance(s) spécifiée(s). Il y a au moins un paquetage affiché par dépendance. 

localinstall

  Installer un ensemble de fichiers rpm locaux. Si c'est nécessaire, les dépôts actifs seront utilisés pour résoudre les dépendances. 

localupdate

  Mettre à jour le système avec les fichiers rpm locaux spécifiés. Seuls les fichiers rpm dont une précédente version est installée seront installés, les autres paquetages spécifiés seront ignorés. Si c'est nécessaire, les dépôts actifs seront utilisés pour résoudre les dépendances. 

deplist

  Afficher une liste de toutes les dépendances et des paquetages qui fournissent ces dépendances pour les paquetages spécifiés. 

repolist

  Afficher une liste de tous les dépôts configurés. Par défaut, affiche une liste de tous les dépôts actifs.