Cet article décrit comment gérer les packages avec yum
dans les distributions basées sur Red Hat® Enterprise Linux®.
Prérequis
Vous devez avoir les prérequis suivants :
- Compréhension de base de Secure Shell (SSH)
- Accès sudo ou administratif à votre serveur
- Un serveur cloud exécutant Red Hat Enterprise Linux 6 ou version ultérieure ou CentOS 6 ou version ultérieure
Gestion des packages sous Linux
Le terme gestion des packages dans Linux décrit l'installation, la suppression ou la mise à jour de logiciels sur votre serveur Linux. Les packages sont créés à l'aide d'un code source qui installe un logiciel sur votre serveur. Les packages sont compilés pour permettre une installation facile plutôt que d'installer chaque composant à partir de la source.
Outils de package dans les distributions RHEL
Les distributions basées sur RHEL® incluent les deux formes de gestion de packages suivantes :
-
rpm
est considéré comme un outil de bas niveau utilisé pour installer, supprimer et collecter des informations, ainsi que pour créer des packages à installer sur un serveur basé sur RHEL. -
yum
est considéré comme un outil de haut niveau qui a les mêmes fonctionnalités querpm
mais résout également les dépendances pour permettre une installation plus fluide de .rpm colis.
Remarque :Rackspace ne prend pas en charge l'installation de packages à partir de la source.
Utiliser yum
Le yum
est votre outil principal pour installer et gérer le logiciel sur votre serveur.
Recueillir des informations
Pour voir les dépôts à partir desquels yum
extrait les packages, exécutez la commande suivante :
yum repolist
Cette commande liste les dépôts disponibles sur votre serveur :
# yum repolist
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
repo id repo name status
!drivesrvr drivesrvr 20
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,314
ius/x86_64 IUS for Enterprise Linux 7 - x86_64 609
rackspace Rackspace Monitoring 1
rhel-x86_64-server-7 Red Hat Enterprise Linux Server (v. 7 for 64-bit x86_64) 29,118
rhel-x86_64-server-optional-7 RHEL Server Optional (v. 7 64-bit x86_64) 21,287
repolist: 64,3
Pour rechercher un package dans vos référentiels, utilisez la commande suivante :
yum search <package name>
Remarque :Cette commande localise toutes les instances du <package name>
qui sont disponibles dans vos dépôts. Cette liste peut être assez détaillée, utilisez donc le nom complet du package, si vous le connaissez, pour affiner votre recherche.
Pour obtenir plus d'informations sur un package, utilisez la commande suivante :
yum info <package name>
Cette commande fournit des informations sur le package. Voici un exemple de recherche de httpd
paquet :
# yum info httpd
Available Packages
Name : httpd
Version : 2.4.43
Release : 1.fc31
Architecture : x86_64
Size : 1.4 M
Source : httpd-2.4.43-1.fc31.src.rpm
Repository : updates
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible web server.
Pour voir les packages actuellement installés, exécutez la commande suivante :
yum list installed
Cette commande répertorie tous les packages installés sur le système. Cette liste peut être longue. Si vous connaissez le paquet que vous recherchez, vous pouvez utiliser grep
pour filtrer votre recherche comme indiqué dans l'exemple suivant :
yum list installed | grep httpd
Cette commande fournit une liste plus facile à gérer :
# yum list installed | grep httpd
httpd.x86_64 2.4.6-93.el7 @rhel-x86_64-server-7
httpd-tools.x86_64 2.4.6-93.el7 @rhel-x86_64-server-
Installer des packages
Pour installer un package, utilisez la commande suivante :
yum install <package>
Cette commande interroge vos référentiels et extrait le package à installer. Pendant le processus d'installation, yum
essaie de résoudre les dépendances associées au paquet que vous installez. Si yum
peut résoudre les dépendances, il affiche la sortie et vous demande de confirmer l'installation. L'exemple suivant montre la résolution des dépendances :
# yum install httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================================
Package Arch Version Repository Size
=========================================================================================================================
Installing:
httpd x86_64 2.4.6-93.el7 rhel-x86_64-server-7 1.2 M
Transaction Summary
=========================================================================================================================
Install 1 Package
Total download size: 1.2 M
Installed size: 3.7 M
Is this ok [y/d/N]:
Remarque :Lorsque vous installez httpd
, aucune autre dépendance n'est requise pour installer le package. Dans d'autres situations, il peut y avoir des dépendances supplémentaires requises pour l'installation qui yum
doit être installé.Si yum
ne peut pas résoudre les dépendances, la sortie répertorie les erreurs. Vous devez résoudre ces dépendances pour poursuivre l'installation.
Mettre à jour les packages
Pour mettre à jour un package installé, exécutez la commande suivante :
yum update <package>
Cette commande recherche dans le référentiel les mises à jour du package spécifié, si elles sont disponibles.
Si une mise à jour est disponible, la commande vous montre la modification et demande une confirmation. Sinon, il vous informe qu'il n'y a rien à faire :
# yum update httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr | 2.9 kB 00:00:00
No packages marked for update
Vous pouvez également utiliser la commande suivante pour déclencher une mise à jour pour tous les packages du système :
yum update
Cette commande interroge les référentiels pour toute mise à jour des packages installés sur votre serveur.
Important :Ce processus essaie de mettre à jour tous les packages sur le système. Assurez-vous d'avoir examiné votre environnement avant de continuer, car les modifications pourraient entraîner des problèmes inattendus avec les applications à la suite des mises à jour.
Supprimer des packages
Pour supprimer un package installé, utilisez la commande suivante :
yum remove <package name>
Cette commande vérifie les packages installés, fournit une sortie et vous demande de confirmer la modification :
# yum remove httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr | 2.9 kB 00:00:00
Dependencies Resolved
======================================================================================================================
Package Arch Version Repository Size
======================================================================================================================
Removing:
httpd x86_64 2.4.6-93.el7 @rhel-x86_64-server-7 3.7 M
Removing for dependencies:
mod_php73 x86_64 7.3.18-1.el7.ius @ius 4.8 M
Transaction Summary
=======================================================================================================================
Remove 1 Package (+1 Dependent package)
Installed size: 8.6 M
Is this ok [y/N]:
Remarque :Lorsque vous supprimez httpd
, yum
supprime également le mod_php73
package, qui dépend de httpd
. Assurez-vous que la suppression d'un paquet n'a pas d'impact négatif sur d'autres parties de votre serveur.
Revoir l'historique et annuler les modifications
Dans certains cas, vous devez revoir les actions entreprises avec le yum
outil.
Pour voir l'historique du yum
utilisation de la commande, exécutez la commande suivante :
yum history
Cette commande fournit une sortie numérotée qui montre les transactions effectuées par yum
.
# yum history
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
19 | <rack> | 2020-06-09 14:58 | Install | 2
18 | <rack> | 2020-06-09 14:57 | Erase | 2
17 | <rack> | 2020-06-09 14:56 | Install | 1
16 | <rack> | 2020-06-09 14:55 | Install | 4
15 | <rack> | 2020-06-09 14:55 | Erase | 2
14 | <rack> | 2020-06-09 14:54 | Erase | 1
13 | <rack> | 2020-06-09 14:50 | Install | 1
12 | <rack> | 2020-06-09 14:49 | Erase | 2
11 | root <root> | 2020-06-09 10:14 | I, U | 2
10 | root <root> | 2020-06-09 10:14 | Install | 2 EE
9 | <rack> | 2020-06-09 10:14 | Install | 4
8 | root <root> | 2020-06-09 10:14 | Install | 1 EE
7 | <rack> | 2020-06-09 10:14 | Install | 5
6 | root <root> | 2020-06-09 10:13 | Install | 4
5 | root <root> | 2020-06-09 10:13 | I, U | 18 <
4 | System <unset> | 2020-01-15 13:02 | Install | 1 >
3 | System <unset> | 2020-01-15 13:02 | Install | 1
2 | System <unset> | 2020-01-15 13:02 | Erase | 1
1 | System <unset> | 2020-01-15 12:55 | Install | 578
history list
Cette liste fournit uniquement la date, l'action et le numéro du package modifié. Pour obtenir plus d'informations sur une action spécifique, vous pouvez interroger l'ID
de la colonne de gauche. Utilisez la commande suivante pour afficher les informations sur l'action :
yum history info <ID>
L'exécution de cette commande fournit plus d'informations sur ce qui s'est passé pendant cette transaction :
# yum history info 18
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Transaction ID : 18
Begin time : Tue Jun 9 14:57:12 2020
Begin rpmdb : 609:12b0c5cdd97ae2f0a77a06403b7b16f3d404403c
End time : 14:57:13 2020 (1 seconds)
End rpmdb : 607:784f813e94127f71465085cd9437377514697243
User : <rack>
Return-Code : Success
Command Line : remove httpd
Transaction performed with:
Installed rpm-4.11.3-40.el7.x86_64 @anaconda/7.7
Installed subscription-manager-1.24.13-3.el7_7.x86_64 @base/7.7
Installed yum-3.4.3-167.el7.noarch @rhel-x86_64-server-7
Installed yum-rhn-plugin-2.0.1-10.el7.noarch @anaconda/7.7
Packages Altered:
Erase httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Erase mod_php73-7.3.18-1.el7.ius.x86_64 @ius
history info
Si vous devez annuler une modification, vous devez utiliser la commande suivante :
yum history undo <ID>
Cette commande fournit des informations sur ce que cette action change et demande une confirmation.
# yum history undo 13
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Undoing transaction 13, from Tue Jun 9 14:50:18 2020
Install httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr | 2.9 kB 00:00:00
Dependencies Resolved
======================================================================================================================
Package Arch Version Repository Size
======================================================================================================================
Removing:
httpd x86_64 2.4.6-93.el7 @rhel-x86_64-server-7 3.7 M
Removing for dependencies:
mod_php73 x86_64 7.3.18-1.el7.ius @ius 4.8 M
Transaction Summary
======================================================================================================================
Remove 1 Package (+1 Dependent package)
Installed size: 8.6 M
Is this ok [y/N]:
Si vous souhaitez annuler toutes les modifications apportées à une transaction spécifique, utilisez la commande suivante :
yum history rollback <ID>
Cette commande vous montre ce que cette action change et demande une confirmation. Selon la distance à laquelle vous souhaitez revenir en arrière, cette liste peut être longue. Le résultat ressemble à l'exemple suivant :
# yum history rollback 17
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Rollback to transaction 17, from Tue Jun 9 14:56:03 2020
Undoing the following transactions: 18, 19
Reinstall httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Reinstall mod_php73-7.3.18-1.el7.ius.x86_64 @ius
drivesrvr | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be reinstalled
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be reinstalled
--> Finished Dependency Resolution
Dependencies Resolved
=====================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================
Reinstalling:
httpd x86_64 2.4.6-93.el7 rhel-x86_64-server-7 1.2 M
mod_php73 x86_64 7.3.18-1.el7.ius ius 1.6 M
Transaction Summary
=====================================================================================================================
Reinstall 2 Packages
Total download size: 2.8 M
Installed size: 8.6 M
Is this ok [y/d/N]:
Plus d'informations
Il y a plus d'options disponibles dans yum
. Vous pouvez voir les différents drapeaux et options dans le Linuxman
page pour yum
à ce lien :yum man page
Parce que le yum
commande apporte des modifications au système, vous devez toujours vous assurer que vous avez testé votre environnement avant d'installer ou de mettre à jour des packages. Si possible, assurez-vous de disposer d'une image utilisable sur laquelle revenir en cas de problème après la mise à jour.