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.
# 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/