Introducción
En este laboratorio, obtendrá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 información de paquetes RPM y, a continuación, 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 cómo añadirlos, habilitarlos y deshabilitarlos. Finalmente, aprenderás a ver y comprender el historial de transacciones de DNF, lo que te proporcionará una visión general completa de las operaciones de gestión de paquetes.
Nota: Este laboratorio requiere conexión a internet para descargar paquetes y acceder a los repositorios. Solo está disponible para usuarios de LabEx Pro.
Registrar tu sistema para el soporte de Red Hat
En este paso, aprenderás a registrar tu sistema para el 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 crucial para gestionar el software en sistemas Red Hat Enterprise Linux. Este comando te permite registrar tu sistema con Red Hat, adjuntar suscripciones y acceder a la red de entrega de contenido de Red Hat para obtener paquetes de software y actualizaciones.
Primero, intentemos registrar el sistema utilizando un nombre de usuario de marcador de posición. Esto demostrará el uso del comando, aunque 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 de marcador de posición para que el comando pueda ejecutarse de forma no interactiva. El comando fallará al autenticarse, lo cual es esperado en este entorno, y la salida se guarda 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)
Finalmente, 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 indicando que no hay repositorios respaldados por suscripciones disponibles.
This system has no repositories available through subscriptions.
A continuación, verifiquemos el estado actual de la suscripción para este sistema. Esta es una forma práctica de confirmar que el sistema aún no está registrado antes de trabajar con el contenido de suscripción de Red Hat.
sudo subscription-manager status 2>&1 | tee ~/project/subscription-status.txt
Como el sistema aún no está registrado, el comando informará ese estado directamente.
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Not registered
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 sistemas RHEL.
Explorar información de paquetes RPM
En este paso, aprenderás a utilizar el comando rpm para investigar 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 nivel superior para gestionar paquetes desde repositorios, rpm te permite consultar, verificar, instalar y desinstalar archivos .rpm individuales.
Primero, listemos todos los paquetes RPM instalados en tu sistema. Esto puede generar una lista muy larga, por lo que redirigiremos la salida a 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. Usaremos /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 al que pertenece 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 posee /usr/bin/dnf, y luego muestran metadatos detallados del paquete, incluyendo la versión, lanzamiento, arquitectura, licencia y 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 ser ú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 solo los archivos de configuración instalados por un paquete, utiliza la opción -qc. Comprobemos 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
Finalmente, 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. Veamos el 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 instalado en su lugar. Por ejemplo, con el paquete setup:
rpm -q --changelog setup | head -n 5
Estos comandos rpm son herramientas poderosas 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 del software sea mucho más sencilla que con rpm por sí solo.
Primero, listemos todos los paquetes disponibles e instalados que tienen "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, indicando 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, incluyendo 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 bandera -y responde automáticamente "sí" a cualquier solicitud, lo cual es útil para scripts, pero úsala 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 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 cualquier dependencia que ya no sea necesaria 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. Comprender cómo listar, habilitar, deshabilitar y añadir repositorios es crucial para controlar qué software está disponible en tu sistema.
Primero, listemos todos los repositorios DNF configurados y su estado (habilitado o deshabilitado).
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 poderosa para gestionar las configuraciones de los repositorios. Puedes usarlo para habilitar o deshabilitar repositorios. Por ejemplo, intentemos habilitar un repositorio de depuración hipotético. Aunque este repositorio específico podría no existir o no ser 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 indicando que no se encuentra el repositorio, lo cual es esperado 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. Usaremos 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 indicando 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. Para fines de demostración, intentaremos añadir una URL de repositorio común de EPEL (Extra Packages for Enterprise Linux). Aunque esto podría 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 indicando 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
Finalmente, eliminemos el archivo de configuración del repositorio que acabamos de añadir para limpiar.
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 invaluable 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 hora, la(s) acción(es) realizada(s) 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 particularmente importante, ya que te permite referirte a transacciones específicas. En este laboratorio, puedes capturar el ID de la transacción de eliminación de httpd 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, incluyendo los paquetes que fueron eliminados, 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 poderosas del historial de DNF es la capacidad de deshacer o rehacer transacciones. Deshagamos la transacción de eliminación de httpd reutilizando el valor 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 fueron eliminadas 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 está instalado de nuevo:
rpm -q httpd
httpd-2.4.51-5.el9.x86_64
Finalmente, 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 poderosas para la gestión del sistema.
Resumen
En este laboratorio, aprendimos habilidades esenciales para gestionar paquetes de software en Red Hat Enterprise Linux utilizando DNF. Comenzamos comprendiendo el comando subscription-manager, crucial para registrar sistemas con Red Hat y acceder a su red de entrega de contenido, aunque el registro completo no fue posible en el entorno simulado.
Posteriormente, exploramos cómo consultar información de paquetes RPM, instalar y eliminar software usando DNF, gestionar repositorios de software DNF y ver el historial de transacciones de DNF. Estos pasos proporcionaron una visión general completa de las capacidades de DNF para una gestión eficiente del software.



