20 commandes Linux YUM (Yellowdog Updater, Modified) pour la gestion des packages

Dans cet article, nous allons apprendre comment installer, mettre à jour, supprimer, trouver des paquets, gérer les paquets et les dépôts sur les systèmes Linux en utilisant l’outil YUM (Yellowdog Updater Modified) développé par RedHat.

Les commandes d’exemple présentées dans cet article sont pratiquement testées sur notre serveur RHEL 8, vous pouvez utiliser ces matériaux à des fins d’étude, de certifications RHEL, ou simplement pour explorer les moyens d’installer de nouveaux paquets et de maintenir votre système à jour.

L’exigence de base de cet article est que vous devez avoir une compréhension de base des commandes et un système d’exploitation Linux fonctionnel, où vous pouvez explorer et pratiquer toutes les commandes énumérées ci-dessous.

Qu’est-ce que YUM?

YUM (Yellowdog Updater Modified) est un outil de gestion de paquets en ligne de commande et basé sur l’interface graphique open-source pour les systèmes Linux basés sur RPM (RedHat Package Manager).

Il permet aux utilisateurs et aux administrateurs système d’installer, de mettre à jour, de supprimer ou de rechercher facilement des paquets logiciels sur un système. Il a été développé et publié par Seth Vidal sous la Licence publique générale (GPL) en tant que logiciel libre, ce qui signifie que quiconque peut télécharger et accéder au code pour corriger les bugs et développer des paquets personnalisés.

YUM utilise de nombreux dépôts tiers pour installer automatiquement des paquets en résolvant leurs problèmes de dépendances.

Mise à jour: La commande yum est remplacée par la commande dnf, qui est une version de nouvelle génération de yum et est considérée comme le remplaçant de YUM dans la plupart des distributions basées sur RPM.

1. Installer un paquet avec YUM

Pour installer un paquet appelé Firefox, il suffit d’exécuter la commande ci-dessous, elle trouvera et installera automatiquement toutes les dépendances requises pour Firefox.

# yum install firefox
Loaded plugins: fastestmirror
Dependencies Resolved

================================================================================================
 Package                    Arch        Version                    Repository            Size        
================================================================================================
Updating:
firefox                        i686        10.0.6-1.el6.centos     updates             20 M
Updating for dependencies:
 xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M

Transaction Summary
================================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)

Total download size: 32 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
(2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
------------------------------------------------------------------------------------------------
Total                                                           63 kB/s |  32 MB   02:04

Updated:
  firefox.i686 0:10.0.6-1.el6.centos

Dependency Updated:
  xulrunner.i686 0:10.0.6-1.el6.centos

Complete!

La commande ci-dessus demandera une confirmation avant d’installer un paquet sur votre système. Si vous souhaitez installer des paquets automatiquement sans demander de confirmation, utilisez l’option -y comme indiqué dans l’exemple ci-dessous.2. Supprimer un paquet avec YUM

# yum -y install firefox

2. Supprimer un paquet avec YUM

Pour supprimer un paquet complètement avec toutes les dépendances, il suffit d’exécuter la commande suivante comme indiqué ci-dessous.

# yum remove firefox
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                    Arch        Version                        Repository            Size        
====================================================================================================
Removing:
 firefox                    i686        10.0.6-1.el6.centos            @updates              23 M

Transaction Summary
====================================================================================================
Remove        1 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : firefox-10.0.6-1.el6.centos.i686                                                                                                                          1/1

Removed:
  firefox.i686 0:10.0.6-1.el6.centos

Complete!

De la même manière, la commande ci-dessus demandera une confirmation avant de supprimer un paquet. Pour désactiver l’invite de confirmation, ajoutez simplement l’option -y comme indiqué ci-dessous.

# yum -y remove firefox

3. Mettre à jour un paquet avec YUM

Supposons que vous ayez une version obsolète du paquet MySQL et que vous souhaitiez la mettre à jour vers la dernière version stable. Exécutez simplement la commande suivante, elle résoudra automatiquement tous les problèmes de dépendances et les installera.

# yum update mysql
Loaded plugins: fastestmirror
Dependencies Resolved

============================================================================================================
 Package            Arch                Version                    Repository                    Size
============================================================================================================
Updating:
 vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k

Transaction Summary
============================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total size: 144 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : vsftpd                                                                     1/2
  Cleanup        : vsftpd                                                                     2/2

Updated:
  vsftpd.i386 0:2.0.5-24.el5_8.1

Complete!

4. Lister un paquet avec YUM

Utilisez la fonction list pour rechercher le paquet spécifique par son nom. Par exemple, pour rechercher un paquet appelé OpenSSH, utilisez la commande.

# yum list openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nus.edu.sg
Installed Packages
openssh.i386                                       4.3p2-72.el5_6.3                                                                      installed
Available Packages                                 4.3p2-82.el5                                                                          base

Pour rendre votre recherche plus précise, définissez les noms de paquet avec leur version, au cas où vous le sauriez. Par exemple, pour rechercher une version spécifique OpenSSH-4.3p2 du paquet, utilisez la commande.

# yum list openssh-4.3p2

[ Vous pourriez également aimer : Comment sécuriser et renforcer le serveur OpenSSH ]

5. Rechercher un paquet avec YUM

Si vous ne vous souvenez pas du nom exact du paquet, utilisez la fonction de recherche pour rechercher tous les paquets disponibles afin de correspondre au nom du paquet que vous avez spécifié. Par exemple, pour rechercher tous les paquets qui correspondent au mot.

# yum search vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon

6. Obtenir des informations sur un paquet à l’aide de YUM

Disons que vous aimeriez connaître les informations sur un paquet avant de l’installer. Pour obtenir des informations sur un paquet, il suffit d’exécuter la commande ci-dessous.

# yum info firefox
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
Available Packages
Name       : firefox
Arch       : i386
Version    : 10.0.6
Release    : 1.el5.centos
Size       : 20 M
Repo       : updates
Summary    : Mozilla Firefox Web browser
URL        : http://www.mozilla.org/projects/firefox/
License    : MPLv1.1 or GPLv2+ or LGPLv2+
Description: Mozilla Firefox is an open-source web browser, designed for standards
           : compliance, performance and portability.

7. Lister tous les paquets disponibles à l’aide de YUM

Pour lister tous les paquets disponibles dans la base de données Yum, utilisez la commande ci-dessous.

# yum list | less

8. Lister tous les paquets installés à l’aide de YUM

Pour lister tous les paquets installés sur un système, il suffit d’exécuter la commande ci-dessous, elle affichera tous les paquets installés.

# yum list installed | less

9. Fonction Yum Provides

La fonction fournit de Yum est utilisée pour déterminer quel paquet appartient à un fichier spécifique. Par exemple, si vous souhaitez connaître le nom du paquet qui possède le /etc/httpd/conf/httpd.conf.

# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror
httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-65.el5.centos.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server
Repo        : installed
Matched from:
Other       : Provides-match: /etc/httpd/conf/httpd.conf

10. Vérifier les mises à jour disponibles à l’aide de Yum

Pour savoir combien de paquets installés sur votre système ont des mises à jour disponibles, vérifiez en utilisant la commande suivante.

# yum check-update

11. Mettre à jour le système à l’aide de Yum

Pour garder votre système à jour avec toutes les mises à jour de sécurité et de paquets binaires, exécutez la commande suivante. Cela installera toutes les dernières mises à jour de correctifs et de sécurité sur votre système.

# yum update

12. Lister tous les paquets de groupes disponibles

Sur Linux, un certain nombre de paquets sont regroupés dans un groupe particulier. Au lieu d’installer des paquets individuels avec yum, vous pouvez installer un groupe particulier qui installera tous les paquets connexes appartenant au groupe. Par exemple, pour lister tous les groupes disponibles, il suffit d’exécuter la commande suivante.

# yum grouplist
Installed Groups:
   Administration Tools
   DNS Name Server
   Dialup Networking Support
   Editors
   Engineering and Scientific
   FTP Server
   Graphics
   Java Development
   Legacy Network Server
Available Groups:
   Authoring and Publishing
   Base
   Beagle
   Cluster Storage
   Clustering
   Development Libraries
   Development Tools
   Eclipse
   Educational Software
   KDE (K Desktop Environment)
   KDE Software Development

13. Installer des paquets de groupe

Pour installer un groupe de paquets particulier, nous utilisons l’option groupinstall. Par exemple, pour installer « MySQL Database« , il suffit d’exécuter la commande ci-dessous.

# yum groupinstall 'MySQL Database'
Dependencies Resolved

=================================================================================================
Package								Arch      Version			 Repository        Size
=================================================================================================
Updating:
 unixODBC                           i386      2.2.11-10.el5      base              290 k
Installing for dependencies:
 unixODBC-libs                      i386      2.2.11-10.el5      base              551 k

Transaction Summary
=================================================================================================
Install       1 Package(s)
Upgrade       1 Package(s)

Total size: 841 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : unixODBC-libs	1/3
  Updating       : unixODBC         2/3
  Cleanup        : unixODBC         3/3

Dependency Installed:
  unixODBC-libs.i386 0:2.2.11-10.el5

Updated:
  unixODBC.i386 0:2.2.11-10.el5

Complete!

14. Mettre à jour des paquets de groupe

Pour mettre à jour tout paquet de groupe installé existant, il suffit d’exécuter la commande ci-dessous, comme indiqué.

# yum groupupdate 'DNS Name Server'

Dependencies Resolved
================================================================================================================
 Package			Arch	        Version				Repository           Size
================================================================================================================
Updating:
 bind                           i386            30:9.3.6-20.P1.el5_8.2          updates              981 k
 bind-chroot                    i386            30:9.3.6-20.P1.el5_8.2          updates              47 k
Updating for dependencies:
 bind-libs                      i386            30:9.3.6-20.P1.el5_8.2          updates              864 k
 bind-utils                     i386            30:9.3.6-20.P1.el5_8.2          updates              174 k

Transaction Summary
================================================================================================================
Install       0 Package(s)
Upgrade       4 Package(s)

Total size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : bind-libs            1/8
  Updating       : bind                 2/8
  Updating       : bind-chroot          3/8
  Updating       : bind-utils           4/8
  Cleanup        : bind                 5/8
  Cleanup        : bind-chroot          6/8
  Cleanup        : bind-utils           7/8
  Cleanup        : bind-libs            8/8

Updated:
  bind.i386 30:9.3.6-20.P1.el5_8.2                  bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Dependency Updated:
  bind-libs.i386 30:9.3.6-20.P1.el5_8.2             bind-utils.i386 30:9.3.6-20.P1.el5_8.2

Complete!

15. Supprimer des paquets de groupe

Pour supprimer ou désinstaller tout groupe installé existant du système, il suffit d’utiliser la commande ci-dessous.

# yum groupremove 'DNS Name Server'

Dependencies Resolved

===========================================================================================================
 Package                Arch              Version                         Repository          Size
===========================================================================================================
Removing:
 bind                   i386              30:9.3.6-20.P1.el5_8.2          installed           2.1 M
 bind-chroot            i386              30:9.3.6-20.P1.el5_8.2          installed           0.0

Transaction Summary
===========================================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : bind                                                   1/2
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
  Erasing        : bind-chroot                                            2/2

Removed:
  bind.i386 30:9.3.6-20.P1.el5_8.2                                        bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Complete!

16. Lister les dépôts Yum activés

Pour lister tous les dépôts Yum activés sur votre système, utilisez l’option suivante.

# yum repolist

repo id                     repo name                                            status
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
mod-pagespeed               mod-pagespeed                                        enabled:      1
rpmforge                    RHEL 5 - RPMforge.net - dag                          enabled: 11,290
updates                     CentOS-5 - Updates                                   enabled:    743
repolist: 20,824

16. Lister tous les dépôts Yum activés et désactivés

La commande suivante affichera tous les dépôts Yum activés et désactivés sur le système.

# yum repolist all

repo id                     repo name                                            status
C5.0-base                   CentOS-5.0 - Base                                    disabled
C5.0-centosplus             CentOS-5.0 - Plus                                    disabled
C5.0-extras                 CentOS-5.0 - Extras                                  disabled
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
repolist: 20,824

17. Installer un paquet à partir d’un dépôt spécifique

Pour installer un paquet particulier à partir d’un dépôt activé ou désactivé, vous devez utiliser l’option --enablerepo dans votre commande yum. Par exemple, pour installer le paquet PhpMyAdmin, il suffit d’exécuter la commande.

# yum --enablerepo=epel install phpmyadmin

Dependencies Resolved
=============================================================================================
 Package                Arch           Version            Repository           Size
=============================================================================================
Installing:
 phpMyAdmin             noarch         3.5.1-1.el6        epel                 4.2 M

Transaction Summary
=============================================================================================
Install       1 Package(s)

Total download size: 4.2 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
phpMyAdmin-3.5.1-1.el6.noarch.rpm                       | 4.2 MB     00:25
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : phpMyAdmin-3.5.1-1.el6.noarch             1/1
  Verifying  : phpMyAdmin-3.5.1-1.el6.noarch             1/1

Installed:
  phpMyAdmin.noarch 0:3.5.1-1.el6

Complete!

18. Shell Interactif Yum

La commande Yum offre un shell personnalisé où vous pouvez exécuter plusieurs commandes.

# yum shell
Loaded plugins: fastestmirror
Setting up Yum Shell
> update httpd
Loading mirror speeds from cached hostfile
 * base: mirrors.sin3.sg.voxel.net
 * epel: ftp.riken.jp
 * extras: mirrors.sin3.sg.voxel.net
 * updates: mirrors.sin3.sg.voxel.net
Setting up Update Process
>

19. Nettoyer le Cache Yum

Par défaut, yum conserve toutes les données de paquets des référentiels activés dans /var/cache/yum/ avec chaque sous-répertoire. Pour nettoyer tous les fichiers mis en cache à partir du référentiel activé, vous devez exécuter régulièrement la commande suivante pour nettoyer tout le cache et vous assurer qu’aucun espace inutile n’est utilisé. Nous ne voulons pas donner la sortie de la commande ci-dessous, car nous aimons conserver les données mises en cache telles quelles.

# yum clean all

20. Afficher l’historique de Yum

Pour afficher toutes les transactions passées de la commande yum, utilisez simplement la commande suivante.

# yum history

Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root               | 2012-08-11 15:19 | Install        |    3
     9 | root               | 2012-08-11 15:11 | Install        |    1
     8 | root               | 2012-08-11 15:10 | Erase          |    1 EE
     7 | root               | 2012-08-10 17:44 | Install        |    1
     6 | root               | 2012-08-10 12:19 | Install        |    2
     5 | root               | 2012-08-10 12:14 | Install        |    3
     4 | root               | 2012-08-10 12:12 | I, U           |   13 E<
     3 | root               | 2012-08-09 13:01 | Install        |    1 >
     2 | root               | 2012-08-08 20:13 | I, U           |  292 EE
     1 | System            | 2012-08-08 17:15 | Install        |  560
history list

Nous avons essayé de couvrir toutes les commandes yum de base à avancées avec leurs exemples. Si quelque chose concernant les commandes yum a pu être manqué. Veuillez nous le faire savoir via notre zone de commentaires. Ainsi, nous continuerons à mettre à jour en fonction des retours reçus.

Source:
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/