20 commandes YUM pour la gestion des paquets Linux
Dans cet article, nous allons apprendre à installer, mettre à jour, supprimer, trouver des paquets, gérer des paquets et des dépôts sur des systèmes Linux à l’aide de l’outil YUM (Yellowdog Updater Modified) développé par RedHat.
Les exemples de commandes présentés dans cet article sont testés de manière pratique 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 packages 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 répertoriées ci-dessous.
Qu’est-ce que YUM ?
YUM (Yellowdog Updater Modified) est un outil de gestion de paquets en ligne de commande open source ainsi que graphique 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 packages logiciels sur un système. Il a été développé et publié par Seth Vidal sous GPL (General Public License) en tant qu’open-source, ce qui signifie que n’importe qui peut être autorisé à télécharger et à accéder au code pour corriger les bogues et développer des packages personnalisés.
YUM utilise de nombreux dépôts tiers pour installer automatiquement les packages 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 considérée comme le remplacement de YUM dans la plupart des distributions récentes basées sur RPM.
1. Installer un package avec YUM
Pour installer un paquet appelé Firefox, il suffit d’exécuter la commande ci-dessous, il 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 vous demandera une confirmation avant d’installer tout paquet sur votre système. Si vous souhaitez installer les paquets automatiquement sans demander de confirmation, utilisez l’option -y comme indiqué ci-dessous.
# yum -y install firefox2. Suppression d’un paquet avec YUM
Pour supprimer complètement un paquet 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, il suffit d’ajouter l’option -y comme indiqué ci-dessous.
# yum -y remove firefox3. Mise à jour d’un package à l’aide de YUM
Supposons que vous ayez une version obsolète du package MySQL et que vous souhaitiez la mettre à jour vers la dernière version stable. Il suffit d’exécuter 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. Répertorier un paquet à l’aide de YUM
Utilisez la fonction list pour rechercher le paquet spécifique avec un nom. Par exemple, pour rechercher un package 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 basePour rendre votre recherche plus précise, définissez les noms des paquets avec leur version, au cas où vous le sauriez faire. Par exemple, pour rechercher une version spécifique OpenSSH-4.3p2 du package, utilisez la commande.
# yum list openssh-4.3p25. Recherchez un forfait à l’aide de YUM
Si vous ne vous souvenez pas du nom exact du paquet, utilisez la fonction search pour rechercher tous les paquets disponibles afin qu’ils correspondent au nom du paquet que vous avez spécifié. Par exemple, pour rechercher tous les packages 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 Daemon6. Obtenez des informations sur un forfait à l’aide de YUM
Supposons que vous souhaitiez 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. Énumérez tous les forfaits disponibles à l’aide de YUM
Pour répertorier tous les packages disponibles dans la base de données Yum, utilisez la commande ci-dessous.
# yum list | less8. Répertoriez tous les packages installés à l’aide de YUM
Pour répertorier tous les packages installés sur un système, il suffit d’exécuter la commande ci-dessous, elle affichera tous les packages installés.
# yum list installed | less9. Yum fournit une fonction
Yum fournit la fonction est utilisée pour trouver à quel paquet appartient un fichier spécifique. Par exemple, si vous souhaitez connaître le nom du paquet qui contient le fichier /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.conf10. Vérifiez les mises à jour disponibles à l’aide de Yum
Pour savoir combien de packages installés sur votre système ont des mises à jour disponibles, vérifiez l’utilisation de la commande suivante.
# yum check-update11. Mettre à jour le système à l’aide de Yum
Pour maintenir votre système à jour avec toutes les mises à jour de sécurité et de paquets binaires, exécutez la commande suivante. Il installera tous les derniers correctifs et mises à jour de sécurité sur votre système.
# yum update12. Énumérez tous les forfaits de groupe disponibles
Sous Linux, un certain nombre de paquets sont regroupés dans un groupe particulier. Au lieu d’installer des packages individuels avec yum, vous pouvez installer un groupe particulier qui installera tous les packages associés qui appartiennent 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 Development13. Installer des packages 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 un forfait de groupe
Pour mettre à jour les packages de groupe installés existants, exécutez simplement la commande suivante comme indiqué ci-dessous.
# 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 les packages de groupe
Pour supprimer ou supprimer un groupe installé existant du système, utilisez simplement 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. Liste des dépôts Yum activés
Pour répertorier tous les référentiels Yum activés dans 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,82416. Répertorier 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,82417. Installer un package à partir d’un référentiel spécifique
Pour installer un package particulier à partir d’un référentiel spécifique activé ou désactivé, vous devez utiliser une 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. Coquille Yum interactive
L’utilitaire Yum fournit 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. Nettoyez le cache Yum
Par défaut, yum conserve toutes les données du paquet activé par le référentiel dans /var/cache/yum/ avec chaque sous-répertoire, pour nettoyer tous les fichiers mis en cache du référentiel activé, vous devez exécuter régulièrement la commande suivante pour nettoyer tout le cache et vous assurer qu’il n’y a pas d’espace inutile utilisé. Nous ne voulons pas donner le résultat de la commande ci-dessous, car nous aimons garder les données en cache telles quelles.
# yum clean all20. Voir l’historique de Yum
Pour afficher toutes les transactions passées de la commande yum, il suffit d’utiliser 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 listNous avons essayé de couvrir toutes les commandes de base pour faire avancer yum avec leurs exemples. Si quelque chose lié aux commandes yum a pu manquer. Veuillez nous mettre à jour via notre boîte de commentaires. C’est pourquoi nous continuons à mettre à jour la même chose en fonction des commentaires reçus.