GNU/Linux >> Tutoriels Linux >  >> Linux

Gérer les packages dans les distributions basées sur RHEL

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 que rpm 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.


Linux
  1. Comment gérer les packages NodeJS à l'aide de Npm

  2. Apt obtenir des exemples de commandes pour gérer les packages sur Ubuntu/Debian

  3. Exemples de commandes YUM pour installer, supprimer et mettre à niveau des packages

  4. Supprimer complètement tous les packages que j'ai installés ?

  5. Quelles distributions Linux prennent en charge le récent TeX Live avec le gestionnaire de packages ?

Commandes YUM

Progiciels

Comment utiliser APT pour gérer les packages sur Ubuntu ?

Comment gérer les packages d'hébergement sur WHM/cPanel ?

Comment installer et gérer les packages RPM sur le système Ubuntu/Debian

15 Exemples de commandes Linux Yum - Installer, désinstaller, mettre à jour des packages