Instalar software en Red Hat Enterprise Linux

LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, adquirirás experiencia práctica en la gestión de paquetes de software en sistemas Red Hat Enterprise Linux (RHEL) utilizando DNF. Comenzarás comprendiendo el comando subscription-manager para el registro de soporte de Red Hat, incluso en un entorno simulado. Posteriormente, explorarás cómo recuperar e interpretar la información de los paquetes RPM y dominarás la instalación y eliminación de paquetes de software mediante DNF.

Además, este laboratorio te guiará a través de la gestión de repositorios de software DNF, incluyendo su incorporación, activación y desactivación. Por último, aprenderás a consultar y comprender el historial de transacciones de DNF, lo que te proporcionará una visión global de las operaciones de gestión de paquetes.

Nota: Este laboratorio requiere conectividad de red para descargar paquetes y acceder a los repositorios. Solo está disponible para los usuarios de LabEx Pro.

Registrar tu sistema para obtener soporte de Red Hat

En este paso, aprenderás a registrar tu sistema para obtener soporte de Red Hat utilizando el comando subscription-manager. Aunque no se dispone de una suscripción completa de Red Hat en este entorno simulado, comprender el comando subscription-manager es fundamental para administrar el software en los sistemas Red Hat Enterprise Linux. Este comando te permite registrar tu sistema en Red Hat, asociar suscripciones y acceder a la red de entrega de contenidos de Red Hat para obtener paquetes de software y actualizaciones.

Primero, intentemos registrar el sistema utilizando un nombre de usuario provisional. Esto demostrará el uso del comando, a pesar de que el registro real requiere credenciales válidas de Red Hat.

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

Este laboratorio utiliza credenciales provisionales para que el comando pueda ejecutarse de forma no interactiva. El comando fallará al autenticarse, lo cual es de esperar en este entorno, y la salida se guardará en ~/project/subscription-register.txt para su revisión.

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)

Por último, veamos qué repositorios estarían disponibles a través de las suscripciones de Red Hat en un sistema registrado.

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

Dado que el sistema no está registrado, verás un mensaje que indica que no hay repositorios respaldados por suscripciones disponibles.

This system has no repositories available through subscriptions.

A continuación, comprobemos el estado actual de la suscripción de este sistema. Esta es una forma práctica de confirmar que el sistema sigue sin registrarse antes de trabajar con el contenido de suscripción de Red Hat.

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

Dado que el sistema no está registrado, el comando informará Not registered (No registrado) o Unknown (Desconocido), según la versión de subscription-manager. En este entorno simulado, Unknown sigue indicando que el sistema no tiene un estado de suscripción activo después de que el intento de registro fallara.

+-------------------------------------------+
   System Status Details
+-------------------------------------------+
Overall Status: Unknown
System Purpose Status: Unknown

Este ejercicio demuestra el uso básico de subscription-manager para el registro y las comprobaciones de estado. Aunque la funcionalidad completa es limitada en este entorno simulado, estos comandos son fundamentales para comprender el acceso al software en los sistemas RHEL.

Explorar la información de los paquetes RPM

En este paso, aprenderás a utilizar el comando rpm para investigar los paquetes de software. RPM (Red Hat Package Manager) es el sistema central de gestión de paquetes utilizado por Red Hat Enterprise Linux. Aunque dnf (que explorarás más adelante) es una herramienta de mayor nivel para gestionar paquetes desde repositorios, rpm te permite consultar, verificar, instalar y desinstalar archivos .rpm individuales.

Primero, vamos a listar todos los paquetes RPM instalados en tu sistema. Esto puede generar una lista muy larga, por lo que canalizaremos la salida hacia head para ver solo el principio.

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

Verás una lista de nombres de paquetes, versiones y arquitecturas. Por ejemplo:

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.noarch
basesystem-11-13.el9.noarch
pcre2-syntax-10.40-5.el9.noarch
ncurses-base-6.2-10.20210508.el9.noarch

A continuación, averigüemos qué paquete proporciona un archivo específico. Utilizaremos /etc/yum.repos.d como ejemplo, que es un directorio que contiene archivos de configuración de repositorios DNF.

rpm -qf /etc/yum.repos.d

La salida te mostrará el paquete propietario de este directorio.

redhat-release-9.4-0.4.el9.x86_64

Ahora, obtengamos información detallada sobre el paquete que proporciona el comando dnf.

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

Estos comandos primero identifican qué RPM es propietario de /usr/bin/dnf, y luego muestran los metadatos detallados del paquete, incluyendo la versión, la compilación (release), la arquitectura, la licencia y el resumen.

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.

También puedes listar todos los archivos instalados por un paquete. Esto puede resultar útil para comprender qué coloca un paquete en tu sistema.

rpm -ql dnf | head -n 10

Esto mostrará los primeros 10 archivos instalados por el paquete 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

Para ver únicamente los archivos de configuración instalados por un paquete, utiliza la opción -qc. Vamos a comprobar el paquete openssh-clients.

rpm -qc openssh-clients

Esto listará los archivos de configuración relacionados con los clientes SSH.

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

Por último, para ver la información del registro de cambios (changelog) de un paquete, utiliza --changelog. Esto puede proporcionar información sobre el historial de actualizaciones y correcciones de un paquete. Echemos un vistazo al paquete audit.

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

Si el paquete no está instalado, verás un mensaje de error:

package audit is not installed

Puedes probar con un paquete que sí esté instalado. Por ejemplo, con el paquete setup:

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

Estos comandos rpm son herramientas potentes para comprender los paquetes instalados en tu sistema y los archivos que contienen.

Instalar y eliminar paquetes de software con DNF

En este paso, aprenderás a utilizar dnf (Dandified YUM) para gestionar paquetes de software. dnf es el gestor de paquetes predeterminado en Red Hat Enterprise Linux 9 y se utiliza para instalar, actualizar y eliminar paquetes de software, así como para gestionar repositorios de software. Maneja automáticamente las dependencias, lo que hace que la gestión de software sea mucho más sencilla que utilizando únicamente rpm.

Primero, vamos a listar todos los paquetes disponibles e instalados que tengan "http" en su nombre. Esto te dará una idea de qué paquetes están relacionados con los servicios HTTP.

sudo dnf list 'http*'

Verás una lista de paquetes que indica si están instalados o disponibles para su instalación.

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

Ahora, busquemos paquetes que contengan "web server" en su nombre, resumen o descripción. La opción search all es útil para una búsqueda más amplia.

sudo dnf search all 'web server'

Este comando devolverá una lista de paquetes que coinciden con los términos de búsqueda.

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

Obtengamos información detallada sobre el paquete httpd, que es el servidor HTTP Apache.

sudo dnf info httpd

Esto mostrará detalles completos sobre el paquete, incluido su tamaño, licencia y descripción.

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.

Ahora, instalemos el paquete httpd. Necesitarás privilegios de sudo para esta operación.

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

La opción -y responde automáticamente "yes" (sí) a cualquier pregunta, lo cual es útil para la creación de scripts, pero debe usarse con precaución en entornos de producción.

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!

Puedes verificar que httpd está instalado consultando con rpm:

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

Ahora, eliminemos el paquete httpd.

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

Esto eliminará el paquete httpd y todas las dependencias que ya no sean necesarias para otros paquetes instalados.

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!

Puedes confirmar su eliminación:

rpm -q httpd
package httpd is not installed

Esto demuestra los comandos básicos de dnf para instalar y eliminar paquetes de software.

Gestionar repositorios de software DNF

En este paso, aprenderás a gestionar los repositorios de software DNF. Los repositorios son ubicaciones donde se almacenan los paquetes de software y desde las cuales dnf los recupera. Saber cómo listar, habilitar, deshabilitar y añadir repositorios es fundamental para controlar qué software está disponible en tu sistema.

Primero, vamos a listar todos los repositorios DNF configurados y su estado (habilitados o deshabilitados).

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

Verás una lista de IDs de repositorios, nombres y su estado actual. Los nombres exactos de los repositorios dependen de la imagen utilizada para el laboratorio.

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

El comando dnf config-manager es una herramienta potente para gestionar las configuraciones de los repositorios. Puedes utilizarla para habilitar o deshabilitar repositorios. Por ejemplo, intentemos habilitar un hipotético repositorio de depuración (debug). Aunque este repositorio específico puede no existir o no estar accesible en este entorno de laboratorio, el comando demuestra la sintaxis.

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

Verás mensajes sobre la gestión de suscripciones y un error que indica que no se encuentra el repositorio, lo cual es de esperar en este entorno.

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.

Ahora, intentemos deshabilitar un repositorio. Utilizaremos rhel-9-for-x86_64-appstream-rpms como ejemplo. Nota: Este nombre de repositorio específico no existe en la imagen actual del laboratorio, pero el comando demuestra la sintaxis.

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

Verás mensajes de gestión de suscripciones y un error que indica que el repositorio no existe en este entorno.

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.

Verifiquemos que este nombre de repositorio no existe en el sistema actual:

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

Como era de esperar, no habrá salida ya que este repositorio no existe en la imagen actual del laboratorio.

(no output)

Intentemos el mismo comando de habilitación para confirmar que el repositorio no existe:

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

Nuevamente, verás el mismo mensaje de error:

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.

El comando dnf config-manager --add-repo también se puede utilizar para añadir nuevos repositorios especificando una URL. Con fines de demostración, intentaremos añadir la URL de un repositorio común de EPEL (Extra Packages for Enterprise Linux). Aunque esto puede no configurar completamente el repositorio (ya que a menudo requiere una clave GPG y un archivo .repo específico), muestra la capacidad del comando.

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

Verás una salida que indica que se ha creado un nuevo archivo .repo.

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/

Puedes inspeccionar el archivo .repo recién creado en /etc/yum.repos.d/. El nombre del archivo se derivará de la URL.

ls /etc/yum.repos.d/

Deberías ver un archivo como dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo junto con los archivos de repositorio existentes.

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

Por último, eliminemos el archivo de configuración del repositorio que acabamos de añadir para limpiar el sistema.

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

Este paso te ha mostrado cómo listar, habilitar, deshabilitar y añadir repositorios DNF, que son habilidades esenciales para gestionar fuentes de software en RHEL.

Ver el historial de transacciones de DNF

En este paso, aprenderás a ver el historial de transacciones de las operaciones de DNF. dnf mantiene un registro detallado de todas las instalaciones, eliminaciones y actualizaciones de paquetes. Este historial es de un valor incalculable para la resolución de problemas, la auditoría e incluso para revertir cambios si es necesario.

Primero, veamos el resumen de todas las transacciones de DNF que han ocurrido en tu sistema.

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

Verás una tabla que lista cada transacción con un ID, la línea de comandos utilizada, la fecha y la hora, las acciones realizadas y el número de paquetes alterados.

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 columna ID es especialmente importante, ya que te permite hacer referencia a transacciones específicas. En este laboratorio, puedes capturar el ID de la transacción de eliminación de httpd a partir de la salida del historial y reutilizarlo en los siguientes comandos.

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

Este comando proporciona un desglose completo de la transacción seleccionada, incluidos los paquetes que se eliminaron, sus versiones y el motivo de la acción.

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

Una de las características más potentes del historial de DNF es la capacidad de deshacer (undo) o repetir (redo) transacciones. Deshagamos la transacción de eliminación de httpd reutilizando el valor de HTTPD_REMOVE_ID que acabas de capturar.

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

Este comando reinstalará el paquete httpd y sus dependencias que se eliminaron en esa transacción específica.

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!

Puedes verificar que httpd vuelve a estar instalado:

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

Por último, eliminemos httpd de nuevo para dejar el sistema en un estado limpio para futuros laboratorios.

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

Este paso ha demostrado cómo utilizar dnf history para ver, inspeccionar e incluso revertir transacciones de DNF, proporcionando capacidades potentes para la gestión del sistema.

Resumen

En este laboratorio, hemos aprendido habilidades esenciales para gestionar paquetes de software en Red Hat Enterprise Linux utilizando DNF. Comenzamos comprendiendo el comando subscription-manager, crucial para registrar sistemas en Red Hat y acceder a su red de entrega de contenidos, a pesar de que el registro completo no era posible en el entorno simulado.

Posteriormente, exploramos cómo consultar la información de los paquetes RPM, instalar y eliminar software utilizando DNF, gestionar repositorios de software DNF y ver el historial de transacciones de DNF. Estos pasos proporcionaron una visión general y completa de las capacidades de DNF para una gestión eficiente del software.