Dans cet article, nous allons apprendre à 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 exemples de commandes présentés dans cet article sont testés en pratique sur notre serveur CentOS 6.3. Vous pouvez utiliser ce matériel à des fins d’étude, de certification 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, vous devez avoir une compréhension de base des commandes et un système d’exploitation Linux en fonctionnement, 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 open source basé sur la ligne de commande ainsi que sur le graphique pour les systèmes Linux basés sur RPM (RedHat Package Manager). Il permet aux utilisateurs et à l’administrateur 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 GPL (General Public License) en tant que source ouverte, ce qui signifie que tout le monde peut télécharger et accéder au code pour corriger les bogues et développer des paquets personnalisés. YUM utilise de nombreux dépôts tiers pour installer automatiquement des paquets en résolvant les problèmes de leurs dépendances.
1. Installer un paquet avec YUM
Pour installer un paquet appelé Firefox 14, il suffit d’exécuter la commande ci-dessous, elle trouvera et installera automatiquement toutes les dépendances requises pour Firefox.
# yum install firefoxLoaded plugins: fastestmirrorDependencies Resolved================================================================================================ Package Arch Version Repository Size ================================================================================================Updating:firefox i686 10.0.6-1.el6.centos updates 20 MUpdating for dependencies: xulrunner i686 10.0.6-1.el6.centos updates 12 MTransaction Summary================================================================================================Install 0 Package(s)Upgrade 2 Package(s)Total download size: 32 MIs this ok : yDownloading 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:04Updated: firefox.i686 0:10.0.6-1.el6.centosDependency Updated: xulrunner.i686 0:10.0.6-1.el6.centosComplete!
La commande ci-dessus demandera une confirmation avant d’installer tout paquet sur votre système. Si vous voulez installer des paquets automatiquement sans demander de confirmation, utilisez l’option -y comme indiqué dans l’exemple ci-dessous.
# yum -y install firefox
2. Suppression d’un paquet avec YUM
Pour supprimer complètement un paquet avec toutes leurs dépendances, il suffit d’exécuter la commande suivante comme indiqué ci-dessous.
# yum remove firefoxLoaded plugins: fastestmirrorSetting up Remove ProcessResolving Dependencies--> Running transaction check---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased--> Finished Dependency ResolutionDependencies Resolved==================================================================================================== Package Arch Version Repository Size ====================================================================================================Removing: firefox i686 10.0.6-1.el6.centos @updates 23 MTransaction Summary====================================================================================================Remove 1 Package(s)Reinstall 0 Package(s)Downgrade 0 Package(s)Is this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Erasing : firefox-10.0.6-1.el6.centos.i686 1/1Removed: firefox.i686 0:10.0.6-1.el6.centosComplete!
De la même manière, la commande ci-dessus demandera une confirmation avant de supprimer un paquet. Pour désactiver la demande de confirmation, il suffit d’ajouter l’option -y comme indiqué ci-dessous.
# yum -y remove firefox
3. Mise à jour d’un paquet à l’aide de YUM
Disons que vous avez une version obsolète du paquet MySQL et que vous voulez le 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 mysqlLoaded plugins: fastestmirrorDependencies Resolved============================================================================================================ Package Arch Version Repository Size============================================================================================================Updating: vsftpd i386 2.0.5-24.el5_8.1 updates 144 kTransaction Summary============================================================================================================Install 0 Package(s)Upgrade 1 Package(s)Total size: 144 kIs this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Updating : vsftpd 1/2 Cleanup : vsftpd 2/2Updated: vsftpd.i386 0:2.0.5-24.el5_8.1Complete!
4. Lister un paquet en utilisant YUM
Utilisez la fonction liste pour rechercher le paquet spécifique avec le nom. Par exemple pour rechercher un paquet appelé openssh, utilisez la commande.
# yum list opensshLoaded plugins: fastestmirrorLoading 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.sgInstalled Packagesopenssh.i386 4.3p2-72.el5_6.3 installedAvailable Packages 4.3p2-82.el5 base
Pour rendre votre recherche plus précise, définissez le nom du 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
5. Rechercher un paquet à l’aide de YUM
Si vous ne vous souvenez pas du nom exact du paquet, alors utilisez la fonction de recherche pour rechercher tous les paquets disponibles correspondant au nom du paquet que vous avez spécifié. Par exemple, pour rechercher tous les paquets qui correspondent au mot .
# yum search vsftpdLoaded plugins: fastestmirrorLoading 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 colorizerpure-ftpd-selinux.i386 : SELinux support for Pure-FTPDvsftpd.i386 : vsftpd - Very Secure Ftp Daemon
6. Obtenir les informations d’un paquet en utilisant YUM
Disons que vous souhaitez connaître les informations d’un paquet avant de l’installer. Pour obtenir les informations d’un paquet, il suffit d’émettre la commande ci-dessous.
# yum info firefoxLoaded plugins: fastestmirrorLoading 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.inAvailable PackagesName : firefoxArch : i386Version : 10.0.6Release : 1.el5.centosSize : 20 MRepo : updatesSummary : Mozilla Firefox Web browserURL : 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 en utilisant 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 en utilisant YUM
Pour lister tous les paquets installés sur un système, il suffit d’émettre la commande ci-dessous, elle affichera tous les paquets installés.
# yum list installed | less
9. Yum Provides Function
La fonction Yum provides est utilisée pour trouver à quel paquet appartient un fichier spécifique. Par exemple, si vous souhaitez connaître le nom du paquet qui possède le fichier /etc/httpd/conf/httpd.conf.
# yum provides /etc/httpd/conf/httpd.confLoaded plugins: fastestmirrorhttpd-2.2.3-63.el5.centos.i386 : Apache HTTP ServerRepo : baseMatched from:Filename : /etc/httpd/conf/httpd.confhttpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP ServerRepo : updatesMatched from:Filename : /etc/httpd/conf/httpd.confhttpd-2.2.3-65.el5.centos.i386 : Apache HTTP ServerRepo : updatesMatched from:Filename : /etc/httpd/conf/httpd.confhttpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP ServerRepo : installedMatched 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, pour vérifier utilisez la commande suivante.
# yum check-update
11. 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. Elle installera tous les derniers correctifs et mises à jour de sécurité sur votre système.
# yum update
12. Lister tous les paquets de groupe disponibles
Dans Linux, nombre de paquets sont regroupés à un groupe particulier. Au lieu d’installer des paquets individuels avec yum, vous pouvez installer un groupe particulier qui installera tous les paquets connexes qui appartiennent au groupe. Par exemple pour lister tous les groupes disponibles, il suffit d’émettre la commande suivante.
# yum grouplistInstalled Groups: Administration Tools DNS Name Server Dialup Networking Support Editors Engineering and Scientific FTP Server Graphics Java Development Legacy Network ServerAvailable 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 un groupe de paquets
Pour installer un groupe de paquets particulier, nous utilisons l’option comme groupinstall. Par exemple, pour installer « Base de données MySQL », il suffit d’exécuter la commande ci-dessous.
# yum groupinstall 'MySQL Database'Dependencies Resolved=================================================================================================PackageArch Version Repository Size=================================================================================================Updating: unixODBC i386 2.2.11-10.el5 base 290 kInstalling for dependencies: unixODBC-libs i386 2.2.11-10.el5 base 551 kTransaction Summary=================================================================================================Install 1 Package(s)Upgrade 1 Package(s)Total size: 841 kIs this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Installing : unixODBC-libs1/3 Updating : unixODBC 2/3 Cleanup : unixODBC 3/3Dependency Installed: unixODBC-libs.i386 0:2.2.11-10.el5Updated: unixODBC.i386 0:2.2.11-10.el5Complete!
14. Mettre à jour un paquet de groupe
Pour mettre à jour tout paquet de groupe installé existant, il suffit d’exécuter la commande suivante comme indiqué ci-dessous.
# yum groupupdate 'DNS Name Server'Dependencies Resolved================================================================================================================ PackageArch VersionRepository 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 kUpdating 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 kTransaction Summary================================================================================================================Install 0 Package(s)Upgrade 4 Package(s)Total size: 2.0 MIs this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning 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/8Updated: bind.i386 30:9.3.6-20.P1.el5_8.2 bind-chroot.i386 30:9.3.6-20.P1.el5_8.2Dependency Updated: bind-libs.i386 30:9.3.6-20.P1.el5_8.2 bind-utils.i386 30:9.3.6-20.P1.el5_8.2Complete!
15. Supprimer un groupe de paquets
Pour supprimer ou supprimer 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.0Transaction Summary===========================================================================================================Remove 2 Package(s)Reinstall 0 Package(s)Downgrade 0 Package(s)Is this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Erasing : bind 1/2warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave Erasing : bind-chroot 2/2Removed: bind.i386 30:9.3.6-20.P1.el5_8.2 bind-chroot.i386 30:9.3.6-20.P1.el5_8.2Complete!
16. Lister les dépôts Yum activés
Pour lister tous les dépôts Yum activés dans votre système, utilisez l’option suivante.
# yum repolistrepo id repo name statusbase CentOS-5 - Base enabled: 2,725epel Extra Packages for Enterprise Linux 5 - i386 enabled: 5,783extras CentOS-5 - Extras enabled: 282mod-pagespeed mod-pagespeed enabled: 1rpmforge RHEL 5 - RPMforge.net - dag enabled: 11,290updates CentOS-5 - Updates enabled: 743repolist: 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 allrepo id repo name statusC5.0-base CentOS-5.0 - Base disabledC5.0-centosplus CentOS-5.0 - Plus disabledC5.0-extras CentOS-5.0 - Extras disabledbase CentOS-5 - Base enabled: 2,725epel Extra Packages for Enterprise Linux 5 - i386 enabled: 5,783extras CentOS-5 - Extras enabled: 282repolist: 20,824
17. Installer un paquet à partir d’un référentiel spécifique
Pour installer un paquet particulier à partir d’un référentiel spécifique activé ou désactivé, vous devez utiliser l’option -enablerepo dans votre commande yum. Par exemple, pour installer le paquet PhpMyAdmin 3.5.2, il suffit d’exécuter la commande.
# yum --enablerepo=epel install phpmyadminDependencies Resolved============================================================================================= Package Arch Version Repository Size=============================================================================================Installing: phpMyAdmin noarch 3.5.1-1.el6 epel 4.2 MTransaction Summary=============================================================================================Install 1 Package(s)Total download size: 4.2 MInstalled size: 17 MIs this ok : yDownloading Packages:phpMyAdmin-3.5.1-1.el6.noarch.rpm | 4.2 MB 00:25Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Installing : phpMyAdmin-3.5.1-1.el6.noarch 1/1 Verifying : phpMyAdmin-3.5.1-1.el6.noarch 1/1Installed: phpMyAdmin.noarch 0:3.5.1-1.el6Complete!
18. Shell interactif Yum
L’utilitaire Yum fournit un shell personnalisé où vous pouvez exécuter plusieurs commandes.
# yum shellLoaded plugins: fastestmirrorSetting up Yum Shell> update httpdLoading 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.netSetting up Update Process>
19. Nettoyer le cache de Yum
Par défaut, yum conserve toutes les données de paquets activés par le référentiel dans /var/cache/yum/ avec chaque sous-répertoire, pour nettoyer tous les fichiers en cache du référentiel activé, vous devez exécuter la commande suivante régulièrement pour nettoyer tout le cache et vous assurer qu’il n’y a rien d’espace inutile utilise. Nous ne voulons pas donner la sortie de la commande ci-dessous, car nous aimons garder les données en cache telles quelles.
# yum clean all
20. Afficher l’historique de yum
Pour afficher toutes les transactions passées de la commande yum, il suffit d’utiliser la commande suivante.
# yum historyLoaded plugins: fastestmirrorID | 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 | 560history list
.