Installer des logiciels sur Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous acquerrez une expérience pratique de la gestion des paquets logiciels sur les systèmes Red Hat Enterprise Linux (RHEL) à l'aide de DNF. Vous commencerez par comprendre la commande subscription-manager pour l'enregistrement au support Red Hat, même dans un environnement simulé. Ensuite, vous explorerez comment récupérer et interpréter les informations des paquets RPM, puis vous maîtriserez l'installation et la suppression de paquets logiciels à l'aide de DNF.

De plus, ce laboratoire vous guidera dans la gestion des dépôts de logiciels DNF, notamment pour les ajouter, les activer et les désactiver. Enfin, vous apprendrez à consulter et à comprendre l'historique des transactions DNF, ce qui vous donnera une vue d'ensemble complète des opérations de gestion de paquets.

Remarque : Ce laboratoire nécessite une connexion réseau pour télécharger les paquets et accéder aux dépôts. Il est réservé aux utilisateurs de LabEx Pro.

Enregistrer votre système pour le support Red Hat

Dans cette étape, vous apprendrez à enregistrer votre système pour le support Red Hat à l'aide de la commande subscription-manager. Bien qu'un abonnement Red Hat complet ne soit pas disponible dans cet environnement simulé, comprendre la commande subscription-manager est crucial pour gérer les logiciels sur les systèmes Red Hat Enterprise Linux. Cette commande vous permet d'enregistrer votre système auprès de Red Hat, d'attacher des abonnements et d'accéder au réseau de diffusion de contenu (CDN) de Red Hat pour les paquets logiciels et les mises à jour.

Tout d'abord, essayons d'enregistrer le système en utilisant un nom d'utilisateur fictif. Cela démontrera l'utilisation de la commande, même si l'enregistrement réel nécessite des identifiants Red Hat valides.

sudo subscription-manager register --username labex --password labex 2>&1 | tee ~/project/subscription-register.txt

Ce laboratoire utilise des identifiants fictifs afin que la commande puisse s'exécuter de manière non interactive. La commande échouera lors de l'authentification, ce qui est attendu dans cet environnement, et la sortie est enregistrée dans ~/project/subscription-register.txt pour examen.

Registering to: subscription.rhsm.redhat.com:443/subscription
Password:
Invalid username or password. To create a login, please visit https://www.redhat.com/wapps/ugc/register.html (HTTP error code 401: Unauthorized)

Enfin, voyons quels dépôts seraient disponibles via les abonnements Red Hat sur un système enregistré.

sudo subscription-manager repos --list 2>&1 | tee ~/project/subscription-repos.txt

Comme le système n'est pas enregistré, vous verrez un message indiquant qu'aucun dépôt lié à un abonnement n'est disponible.

This system has no repositories available through subscriptions.

Ensuite, vérifions le statut actuel de l'abonnement pour ce système. C'est un moyen pratique de confirmer que le système n'est pas encore enregistré avant de travailler avec le contenu des abonnements Red Hat.

sudo subscription-manager status 2>&1 | tee ~/project/subscription-status.txt

Comme le système n'est pas encore enregistré, la commande rapportera ce statut directement.

+-------------------------------------------+
   System Status Details
+-------------------------------------------+
Overall Status: Not registered

Cet exercice démontre l'utilisation de base de subscription-manager pour l'enregistrement et les vérifications de statut. Bien que les fonctionnalités complètes soient limitées dans cet environnement simulé, ces commandes sont fondamentales pour comprendre l'accès aux logiciels sur les systèmes RHEL.

Explorer les informations sur les paquets RPM

Dans cette étape, vous apprendrez à utiliser la commande rpm pour examiner les paquets logiciels. RPM (Red Hat Package Manager) est le système de gestion de paquets principal utilisé par Red Hat Enterprise Linux. Bien que dnf (que vous explorerez plus tard) soit un outil de haut niveau pour gérer les paquets à partir de dépôts, rpm vous permet d'interroger, de vérifier, d'installer et de désinstaller des fichiers .rpm individuels.

Tout d'abord, listons tous les paquets RPM installés sur votre système. Cela peut générer une très longue liste, nous allons donc rediriger la sortie vers head pour ne voir que le début.

rpm -qa | head > ~/project/rpm-installed.txt
cat ~/project/rpm-installed.txt

Vous verrez une liste de noms de paquets, de versions et d'architectures. Par exemple :

libgcc-11.4.1-3.el9.x86_64
crypto-policies-20240202-1.git283706d.el9.noarch
tzdata-2024a-1.el9.noarch
subscription-manager-rhsm-certificates-20220623-1.el9.noarch
redhat-release-9.4-0.4.el9.x86_64
setup-2.13.7-10.el9.noarch
filesystem-3.16-2.el9.x86_64
basesystem-11-13.el9.noarch
pcre2-syntax-10.40-5.el9.noarch
ncurses-base-6.2-10.20210508.el9.noarch

Ensuite, trouvons quel paquet fournit un fichier spécifique. Nous utiliserons /etc/yum.repos.d comme exemple, qui est un répertoire contenant les fichiers de configuration des dépôts DNF.

rpm -qf /etc/yum.repos.d

La sortie vous montrera le paquet qui possède ce répertoire.

redhat-release-9.4-0.4.el9.x86_64

Maintenant, obtenons des informations détaillées sur le paquet qui fournit la commande dnf.

DNF_PACKAGE=$(rpm -qf /usr/bin/dnf)
rpm -qi "$DNF_PACKAGE" > ~/project/dnf-package-info.txt
cat ~/project/dnf-package-info.txt

Ces commandes identifient d'abord quel RPM possède /usr/bin/dnf, puis affichent les métadonnées détaillées du paquet, y compris la version, la version de publication, l'architecture, la licence et le résumé.

Name        : dnf
Version     : 4.14.0
Release     : 9.el9
Architecture: noarch
Install Date: Thu Jul 18 15:50:10 2024
Group       : Unspecified
Size        : 2425281
License     : GPLv2+
Signature   : RSA/SHA256, Fri Nov 10 10:14:09 2023, Key ID 199e2f91fd431d51
Source RPM  : dnf-4.14.0-9.el9.src.rpm
Build Date  : Thu Oct 26 05:20:14 2023
Build Host  : x86-64-01.build.eng.rdu2.redhat.com
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor      : Red Hat, Inc.
URL         : https://github.com/rpm-software-management/dnf
Summary     : Package manager
Description :
Utility that allows users to manage packages on their systems.
It supports RPMs, modules and comps groups & environments.

Vous pouvez également lister tous les fichiers installés par un paquet. Cela peut être utile pour comprendre ce qu'un paquet installe sur votre système.

rpm -ql dnf | head -n 10

Cela affichera les 10 premiers fichiers installés par le paquet dnf.

/usr/bin/dnf
/usr/lib/systemd/system/dnf-makecache.service
/usr/lib/systemd/system/dnf-makecache.timer
/usr/share/bash-completion
/usr/share/bash-completion/completions
/usr/share/bash-completion/completions/dnf
/usr/share/locale/ar/LC_MESSAGES/dnf.mo
/usr/share/locale/bg/LC_MESSAGES/dnf.mo
/usr/share/locale/bn/LC_MESSAGES/dnf.mo
/usr/share/locale/bn_IN/LC_MESSAGES/dnf.mo

Pour voir uniquement les fichiers de configuration installés par un paquet, utilisez l'option -qc. Vérifions le paquet openssh-clients.

rpm -qc openssh-clients

Cela listera les fichiers de configuration liés aux clients SSH.

/etc/ssh/ssh_config
/etc/ssh/ssh_config.d/50-redhat.conf

Enfin, pour voir les informations du journal des modifications (changelog) d'un paquet, utilisez --changelog. Cela peut fournir des informations sur l'historique des mises à jour et des correctifs d'un paquet. Regardons le paquet audit.

rpm -q --changelog audit | head -n 5

Si le paquet n'est pas installé, vous verrez un message d'erreur :

package audit is not installed

Vous pouvez essayer avec un paquet installé à la place. Par exemple, avec le paquet setup :

rpm -q --changelog setup | head -n 5

Ces commandes rpm sont des outils puissants pour comprendre les paquets installés sur votre système et les fichiers qu'ils contiennent.

Installer et supprimer des paquets logiciels avec DNF

Dans cette étape, vous apprendrez à utiliser dnf (Dandified YUM) pour gérer les paquets logiciels. dnf est le gestionnaire de paquets par défaut dans Red Hat Enterprise Linux 9 et est utilisé pour installer, mettre à jour et supprimer des paquets logiciels, ainsi que pour gérer les dépôts de logiciels. Il gère automatiquement les dépendances, ce qui rend la gestion des logiciels beaucoup plus facile qu'avec rpm seul.

Tout d'abord, listons tous les paquets disponibles et installés qui contiennent "http" dans leur nom. Cela vous donnera une idée des paquets liés aux services HTTP.

sudo dnf list 'http*'

Vous verrez une liste de paquets, indiquant s'ils sont installés ou disponibles pour l'installation.

Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Available Packages
http-parser.i686               2.9.4-6.el9    rhel-9-for-x86_64-appstream-rpms
http-parser.x86_64             2.9.4-6.el9    rhel-9-for-x86_64-appstream-rpms
httpcomponents-client.noarch   4.5.13-2.el9   rhel-9-for-x86_64-appstream-rpms
httpcomponents-core.noarch     4.4.13-6.el9   rhel-9-for-x86_64-appstream-rpms
httpd.x86_64                   2.4.51-5.el9   rhel-9-for-x86_64-appstream-rpms
httpd-devel.x86_64             2.4.51-5.el9   rhel-9-for-x86_64-appstream-rpms
httpd-filesystem.noarch        2.4.51-5.el9   rhel-9-for-x86_64-appstream-rpms
httpd-manual.noarch            2.4.51-5.el9   rhel-9-for-x86_64-appstream-rpms
httpd-tools.x86_64             2.4.51-5.el9   rhel-9-for-x86_64-appstream-rpms

Maintenant, recherchons les paquets qui contiennent "web server" dans leur nom, leur résumé ou leur description. L'option search all est utile pour une recherche plus large.

sudo dnf search all 'web server'

Cette commande renverra une liste de paquets correspondant aux termes de recherche.

Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
================== Summary & Description Matched: web server ===================
nginx.x86_64 : A high performance web server and reverse proxy server
pcp-pmda-weblog.x86_64 : Performance Co-Pilot (PCP) metrics from web server logs
========================= Summary Matched: web server ==========================
libcurl.x86_64 : A library for getting files from web servers
libcurl.i686 : A library for getting files from web servers
======================= Description Matched: web server ========================
freeradius.x86_64 : High-performance and highly configurable free RADIUS server
git-instaweb.noarch : Repository browser in gitweb
http-parser.i686 : HTTP request/response parser for C
http-parser.x86_64 : HTTP request/response parser for C
httpd.x86_64 : Apache HTTP Server
mod_auth_openidc.x86_64 : OpenID Connect auth module for Apache HTTP Server
mod_jk.x86_64 : Tomcat mod_jk connector for Apache
mod_security.x86_64 : Security module for the Apache HTTP Server
varnish.i686 : High-performance HTTP accelerator
varnish.x86_64 : High-performance HTTP accelerator

Obtenons des informations détaillées sur le paquet httpd, qui est le serveur HTTP Apache.

sudo dnf info httpd

Cela affichera des détails complets sur le paquet, y compris sa taille, sa licence et sa description.

Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Available Packages
Name         : httpd
Version      : 2.4.51
Release      : 5.el9
Architecture : x86_64
Size         : 1.5 M
Source       : httpd-2.4.51-5.el9.src.rpm
Repository   : rhel-9-for-x86_64-appstream-rpms
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.

Maintenant, installons le paquet httpd. Vous aurez besoin des privilèges sudo pour cette opération.

sudo dnf install httpd -y | tee ~/project/httpd-install.txt

L'indicateur -y répond automatiquement "oui" à toutes les invites, ce qui est utile pour les scripts, mais à utiliser avec prudence dans les environnements de production.

Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Dependencies resolved.
================================================================================
 Package                Architecture  Version           Repository         Size
================================================================================
Installing:
 httpd                  x86_64        2.4.51-5.el9      rhel-9-for-x86_64-appstream-rpms
                                                                          1.5 M
Installing dependencies:
 apr                    x86_64        1.7.0-11.el9      rhel-9-for-x86_64-appstream-rpms
                                                                          126 k
 apr-util               x86_64        1.6.1-20.el9      rhel-9-for-x86_64-appstream-rpms
                                                                          106 k
 apr-util-bdb           x86_64        1.6.1-20.el9      rhel-9-for-x86_64-appstream-rpms
                                                                           13 k
 apr-util-openssl       x86_64        1.6.1-20.el9      rhel-9-for-x86_64-appstream-rpms
                                                                           15 k
 httpd-filesystem       noarch        2.4.51-5.el9      rhel-9-for-x86_64-appstream-rpms
                                                                           14 k
 httpd-tools            x86_64        2.4.51-5.el9      rhel-9-for-x86_64-appstream-rpms
                                                                          100 k
 mailcap                noarch        2.1.49-5.el9      rhel-9-for-x86_64-baseos-rpms
                                                                           36 k
 mod_http2              x86_64        1.15.7-5.el9      rhel-9-for-x86_64-appstream-rpms
                                                                          150 k
 redhat-logos-httpd     noarch        90.4-1.el9        rhel-9-for-x86_64-appstream-rpms
                                                                           20 k

Transaction Summary
================================================================================
Install  10 Packages

Total download size: 2.1 M
Installed size: 6.9 M
Downloading Packages:
... (downloading package details omitted) ...
Running transaction
... (installation progress omitted) ...

Installed:
  apr-1.7.0-11.el9.x86_64
  apr-util-1.6.1-20.el9.x86_64
  apr-util-bdb-1.6.1-20.el9.x86_64
  apr-util-openssl-1.6.1-20.el9.x86_64
  httpd-2.4.51-5.el9.x86_64
  httpd-filesystem-2.4.51-5.el9.noarch
  httpd-tools-2.4.51-5.el9.x86_64
  mailcap-2.1.49-5.el9.noarch
  mod_http2-1.15.7-5.el9.x86_64
  redhat-logos-httpd-90.4-1.el9.noarch

Complete!

Vous pouvez vérifier que httpd est installé en interrogeant rpm :

rpm -q httpd
httpd-2.4.51-5.el9.x86_64

Maintenant, supprimons le paquet httpd.

sudo dnf remove httpd -y | tee ~/project/httpd-remove.txt

Cela supprimera le paquet httpd et toutes les dépendances qui ne sont plus nécessaires aux autres paquets installés.

Dependencies resolved.
================================================================================
 Package                Architecture  Version           Repository         Size
================================================================================
Removing:
 httpd                  x86_64        2.4.51-5.el9      @appstream        4.7 M
Removing dependent packages:
 apr-util-bdb           x86_64        1.6.1-20.el9      @appstream         13 k
 apr-util-openssl       x86_64        1.6.1-20.el9      @appstream         15 k
 httpd-filesystem       noarch        2.4.51-5.el9      @appstream         14 k
 mod_http2              x86_64        1.15.7-5.el9      @appstream        150 k
 redhat-logos-httpd     noarch        90.4-1.el9        @appstream         20 k

Transaction Summary
================================================================================
Remove  6 Packages

Freed space: 4.9 M
... (transaction progress omitted) ...

Removed:
  apr-util-bdb-1.6.1-20.el9.x86_64
  apr-util-openssl-1.6.1-20.el9.x86_64
  httpd-2.4.51-5.el9.x86_64
  httpd-filesystem-2.4.51-5.el9.noarch
  mod_http2-1.15.7-5.el9.x86_64
  redhat-logos-httpd-90.4-1.el9.noarch

Complete!

Vous pouvez confirmer sa suppression :

rpm -q httpd
package httpd is not installed

Cela démontre les commandes dnf de base pour installer et supprimer des paquets logiciels.

Gérer les dépôts de logiciels DNF

Dans cette étape, vous apprendrez à gérer les dépôts de logiciels DNF. Les dépôts sont des emplacements où les paquets logiciels sont stockés et à partir desquels dnf les récupère. Comprendre comment lister, activer, désactiver et ajouter des dépôts est crucial pour contrôler les logiciels disponibles sur votre système.

Tout d'abord, listons tous les dépôts DNF configurés et leur statut (activé ou désactivé).

sudo dnf repolist all > ~/project/dnf-repolist.txt
cat ~/project/dnf-repolist.txt

Vous verrez une liste d'identifiants de dépôts, de noms et de leur statut actuel. Les noms exacts des dépôts dépendent de l'image utilisée pour le laboratoire.

repo id                                             repo name           status
rhui-rhel-10-for-x86_64-appstream-rhui-rpms         Red Hat Enterprise  enabled
rhui-rhel-10-for-x86_64-baseos-rhui-rpms            Red Hat Enterprise  enabled
rhui-rhel-10-for-x86_64-appstream-rhui-debug-rpms   Red Hat Enterprise  disabled

La commande dnf config-manager est un outil puissant pour gérer les configurations de dépôts. Vous pouvez l'utiliser pour activer ou désactiver des dépôts. Par exemple, essayons d'activer un dépôt de débogage hypothétique. Bien que ce dépôt spécifique puisse ne pas exister ou ne pas être accessible dans cet environnement de laboratoire, la commande démontre la syntaxe.

sudo dnf config-manager --enable rhel-9-server-debug-rpms 2>&1 | tee ~/project/dnf-enable-debug.txt

Vous verrez des messages concernant la gestion des abonnements et une erreur indiquant que le dépôt est introuvable, ce qui est attendu dans cet environnement.

Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Error: No matching repo to modify: rhel-9-server-debug-rpms.

Maintenant, essayons de désactiver un dépôt. Nous utiliserons rhel-9-for-x86_64-appstream-rpms comme exemple. Remarque : Ce nom de dépôt spécifique n'existe pas dans l'image actuelle du laboratoire, mais la commande démontre la syntaxe.

sudo dnf config-manager --disable rhel-9-for-x86_64-appstream-rpms 2>&1 | tee ~/project/dnf-disable-appstream.txt

Vous verrez des messages de gestion des abonnements et une erreur indiquant que le dépôt n'existe pas dans cet environnement.

Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Error: No matching repo to modify: rhel-9-for-x86_64-appstream-rpms.

Vérifions que ce nom de dépôt n'existe pas dans le système actuel :

sudo dnf repolist all | grep rhel-9-for-x86_64-appstream-rpms

Comme prévu, il n'y aura aucune sortie car ce dépôt n'existe pas dans l'image actuelle du laboratoire.

(no output)

Essayons la même commande d'activation pour confirmer que le dépôt n'existe pas :

sudo dnf config-manager --enable rhel-9-for-x86_64-appstream-rpms 2>&1 | tee ~/project/dnf-enable-appstream.txt

Encore une fois, vous verrez le même message d'erreur :

Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Error: No matching repo to modify: rhel-9-for-x86_64-appstream-rpms.

La commande dnf config-manager --add-repo peut également être utilisée pour ajouter de nouveaux dépôts en spécifiant une URL. À des fins de démonstration, nous tenterons d'ajouter une URL de dépôt EPEL (Extra Packages for Enterprise Linux) courante. Bien que cela puisse ne pas configurer complètement le dépôt (car cela nécessite souvent une clé GPG et un fichier .repo spécifique), cela montre la capacité de la commande.

sudo dnf config-manager --add-repo="https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/" 2>&1 | tee ~/project/dnf-add-repo.txt

Vous verrez une sortie indiquant qu'un nouveau fichier .repo a été créé.

Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Adding repo from: https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/

Vous pouvez inspecter le fichier .repo nouvellement créé dans /etc/yum.repos.d/. Le nom du fichier sera dérivé de l'URL.

ls /etc/yum.repos.d/

Vous devriez voir un fichier comme dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo avec les fichiers de dépôt existants.

dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo  redhat.repo  ubi.repo

Enfin, supprimons le fichier de configuration du dépôt que nous venons d'ajouter pour nettoyer.

sudo rm /etc/yum.repos.d/dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo

Cette étape vous a montré comment lister, activer, désactiver et ajouter des dépôts DNF, ce qui est une compétence essentielle pour gérer les sources de logiciels sur RHEL.

Consulter l'historique des transactions DNF

Dans cette étape, vous apprendrez à consulter l'historique des transactions des opérations DNF. dnf conserve un journal détaillé de toutes les installations, suppressions et mises à jour de paquets. Cet historique est inestimable pour le dépannage, l'audit et même pour annuler des modifications si nécessaire.

Tout d'abord, consultons le résumé de toutes les transactions DNF qui ont eu lieu sur votre système.

sudo dnf history | tee ~/project/dnf-history.txt

Vous verrez un tableau listant chaque transaction avec un identifiant (ID), la ligne de commande utilisée, la date et l'heure, la ou les actions effectuées et le nombre de paquets modifiés.

ID     | Command line              | Date and time    | Action(s)      | Altered
--------------------------------------------------------------------------------
     3 | install httpd             | 2024-04-22 08:00 | Install        |   10
     2 | remove httpd              | 2024-04-22 08:01 | Remove         |    6
     1 |                           | 2024-04-22 07:50 | Install        |  767 EE

La colonne ID est particulièrement importante, car elle vous permet de faire référence à des transactions spécifiques. Dans ce laboratoire, vous pouvez capturer l'ID de la transaction de suppression de httpd à partir de la sortie de l'historique et le réutiliser dans les commandes suivantes.

HTTPD_REMOVE_ID=$(sudo dnf history | awk '/remove httpd/ && $1 ~ /^[0-9]+$/ {print $1; exit}')
echo "$HTTPD_REMOVE_ID"
sudo dnf history info "$HTTPD_REMOVE_ID" | tee ~/project/dnf-history-info.txt

Cette commande fournit une analyse complète de la transaction sélectionnée, y compris les paquets qui ont été supprimés, leurs versions et la raison de l'action.

Transaction ID : 2
Begin time     : Mon Apr 22 08:01:00 2024
Begin rpmdb    : 777:a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3
End time       : Mon Apr 22 08:01:05 2024 (5 seconds)
End rpmdb      : 771:a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3
User           : labex <labex>
Return Code    : Success
Command Line   : dnf remove httpd -y
Packages Altered:
    Removed apr-util-bdb-1.6.1-20.el9.x86_64
    Removed apr-util-openssl-1.6.1-20.el9.x86_64
    Removed httpd-2.4.51-5.el9.x86_64
    Removed httpd-filesystem-2.4.51-5.el9.noarch
    Removed mod_http2-1.15.7-5.el9.x86_64
    Removed redhat-logos-httpd-90.4-1.el9.noarch

L'une des fonctionnalités les plus puissantes de l'historique DNF est la possibilité d'annuler (undo) ou de refaire (redo) des transactions. Annulons la transaction de suppression de httpd en réutilisant la valeur HTTPD_REMOVE_ID que vous venez de capturer.

sudo dnf history undo "$HTTPD_REMOVE_ID" -y | tee ~/project/dnf-history-undo.txt

Cette commande réinstallera le paquet httpd et ses dépendances qui ont été supprimés lors de cette transaction spécifique.

Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Undoing transaction 2, from Mon Apr 22 08:01:00 2024
    Removed apr-util-bdb-1.6.1-20.el9.x86_64
    Removed apr-util-openssl-1.6.1-20.el9.x86_64
    Removed httpd-2.4.51-5.el9.x86_64
    Removed httpd-filesystem-2.4.51-5.el9.noarch
    Removed mod_http2-1.15.7-5.el9.x86_64
    Removed redhat-logos-httpd-90.4-1.el9.noarch
Dependencies resolved.
================================================================================
 Package                Architecture  Version           Repository         Size
================================================================================
Installing:
 httpd                  x86_64        2.4.51-5.el9      ubi-9-appstream-rpms  1.5 M
Installing dependencies:
 apr                    x86_64        1.7.0-11.el9      ubi-9-appstream-rpms  126 k
 apr-util               x86_64        1.6.1-20.el9      ubi-9-appstream-rpms  106 k
 apr-util-bdb           x86_64        1.6.1-20.el9      ubi-9-appstream-rpms   13 k
 apr-util-openssl       x86_64        1.6.1-20.el9      ubi-9-appstream-rpms   15 k
 httpd-filesystem       noarch        2.4.51-5.el9      ubi-9-appstream-rpms   14 k
 httpd-tools            x86_64        2.4.51-5.el9      ubi-9-appstream-rpms  100 k
 mailcap                noarch        2.1.49-5.el9      ubi-9-baseos-rpms      36 k
 mod_http2              x86_64        1.15.7-5.el9      ubi-9-appstream-rpms  150 k
 redhat-logos-httpd     noarch        90.4-1.el9        ubi-9-appstream-rpms   20 k

Transaction Summary
================================================================================
Install  10 Packages

Total download size: 2.1 M
Installed size: 6.9 M
... (installation progress omitted) ...
Complete!

Vous pouvez vérifier que httpd est maintenant réinstallé :

rpm -q httpd
httpd-2.4.51-5.el9.x86_64

Enfin, supprimons à nouveau httpd pour laisser le système dans un état propre pour les futurs laboratoires.

sudo dnf remove httpd -y | tee ~/project/dnf-history-final-remove.txt
... (output omitted) ...
Complete!

Cette étape a démontré comment utiliser dnf history pour consulter, inspecter et même annuler des transactions DNF, offrant des capacités puissantes pour la gestion du système.

Résumé

Dans ce laboratoire, nous avons appris des compétences essentielles pour gérer les paquets logiciels sur Red Hat Enterprise Linux à l'aide de DNF. Nous avons commencé par comprendre la commande subscription-manager, cruciale pour enregistrer les systèmes auprès de Red Hat et accéder à leur réseau de diffusion de contenu, même si l'enregistrement complet n'était pas possible dans l'environnement simulé.

Ensuite, nous avons exploré comment interroger les informations des paquets RPM, installer et supprimer des logiciels à l'aide de DNF, gérer les dépôts de logiciels DNF et consulter l'historique des transactions DNF. Ces étapes ont fourni une vue d'ensemble complète des capacités de DNF pour une gestion efficace des logiciels.