Introducción
En este laboratorio, aprenderás las habilidades esenciales para gestionar paquetes de software en sistemas Linux basados en RHEL utilizando el gestor de paquetes YUM. Comenzarás inspeccionando los detalles y las dependencias de los paquetes instalados actualmente mediante los comandos yum list y yum deplist. También explorarás los repositorios de software configurados en tu sistema con yum repolist para comprender de dónde proviene tu software y qué hay disponible.
Basándote en estos conocimientos fundamentales, cambiarás tu enfoque hacia el mantenimiento y la actualización del sistema. Aprenderás a utilizar yum check-update para identificar paquetes que tienen versiones más recientes disponibles. Finalmente, practicarás la aplicación de estas actualizaciones, aprendiendo la diferencia entre actualizar un paquete específico y realizar una actualización completa del sistema para mantener tu entorno seguro y al día.
Inspeccionar un paquete instalado con 'yum list' y 'yum deplist'
En este paso, aprenderás a inspeccionar paquetes instalados utilizando yum, el gestor de paquetes predeterminado para CentOS y otras distribuciones de Linux basadas en RHEL. Comenzaremos examinando el paquete bash, que proporciona el entorno de shell que probablemente estés utilizando. Estos comandos te ayudan a comprender qué hay instalado en tu sistema y de qué otros componentes depende un paquete para funcionar.
Primero, utilicemos el comando yum list para verificar el estado de un paquete específico. Este comando puede indicarte si un paquete está instalado y qué versión se encuentra en tu sistema.
Para que la verificación del laboratorio sea confiable, guarda la salida del comando en /home/labex/project mientras la inspeccionas. Para verificar los detalles del paquete bash, ejecuta el siguiente comando en tu terminal:
sudo yum list bash | tee /home/labex/project/bash-package.txt
Verás una salida similar a esta, confirmando que bash está instalado. El símbolo @ en la columna del repositorio (por ejemplo, @anaconda o @System) indica que el paquete está instalado.
Installed Packages
bash.x86_64 <version> @anaconda
A continuación, exploremos el concepto de dependencias. La mayoría de los paquetes de software no son autónomos; dependen de otros paquetes, como bibliotecas o herramientas, para funcionar correctamente. Estos paquetes requeridos se denominan dependencias. El comando yum deplist te permite ver una lista completa de las dependencias de un paquete determinado.
Para ver todos los paquetes de los que depende bash, ejecuta este comando:
sudo yum deplist bash | tee /home/labex/project/bash-deplist.txt
La salida enumerará cada dependencia y el paquete que la proporciona. Esto es crucial para comprender cómo yum resuelve y gestiona las instalaciones de software.
package: bash.x86_64 <version>
dependency: /bin/sh
provider: bash.x86_64 <version>
dependency: chkconfig
provider: chkconfig.x86_64 <version>
dependency: coreutils
provider: coreutils.x86_64 <version>
dependency: libc.so.6(GLIBC_2.15)(64bit)
provider: glibc.x86_64 <version>
... (output truncated) ...
Al utilizar yum list y yum deplist, puedes obtener una comprensión clara de los paquetes instalados en tu sistema y sus relaciones entre sí.
Explorar repositorios y paquetes disponibles con 'yum repolist'
En este paso, aprenderás a explorar las fuentes de software, conocidas como repositorios, que yum utiliza para buscar e instalar paquetes. También aprenderás a buscar nuevos paquetes que estén disponibles para instalarse en tu sistema.
Un repositorio de paquetes es una ubicación de almacenamiento centralizada donde se guardan los paquetes de software. Cuando le pides a yum que instale un paquete, este contacta con los repositorios configurados, descarga los archivos necesarios y los instala en tu sistema.
Para ver una lista de los repositorios que están habilitados actualmente en tu sistema, puedes usar el comando yum repolist. Esto es útil para verificar qué fuentes de software están activas.
Ejecuta el siguiente comando en tu terminal y guarda la salida para revisarla más tarde:
sudo yum repolist | tee /home/labex/project/yum-repolist.txt
La salida mostrará una lista de IDs de repositorios, sus nombres y la cantidad de paquetes que contienen. Se verá algo así:
repo id repo name
rhui-rhel-9-for-x86_64-appstream-rhui-rpms Red Hat Enterprise Linux 9 for x86_64 - AppStream from RHUI (RPMs)
rhui-rhel-9-for-x86_64-baseos-rhui-rpms Red Hat Enterprise Linux 9 for x86_64 - BaseOS from RHUI (RPMs)
Ahora que sabes dónde busca paquetes yum, averigüemos qué paquetes están disponibles para su instalación. El comando yum list available muestra todos los paquetes de tus repositorios habilitados que aún no están instalados en tu sistema.
Ejecutar yum list available por sí solo produciría una lista muy larga. Es más práctico buscar algo específico. Busquemos paquetes disponibles relacionados con el kernel de Linux. Puedes usar un comodín (*) para hacer coincidir varios nombres de paquetes.
Ejecuta este comando para listar todos los paquetes disponibles que comienzan con kernel:
sudo yum list available 'kernel*' | tee /home/labex/project/yum-kernel-available.txt
Las comillas simples alrededor de kernel* son importantes para evitar que el shell intente expandir el comodín por sí mismo. La salida mostrará una lista de paquetes disponibles relacionados con el kernel, sus versiones y el repositorio del que provienen.
Available Packages
kernel-devel.x86_64 <version> updates
kernel-doc.noarch <version> updates
kernel-headers.x86_64 <version> updates
... (output truncated) ...
Estos comandos son esenciales para gestionar el software de tu sistema, permitiéndote ver tus fuentes de software y descubrir nuevas herramientas para instalar.
Buscar actualizaciones disponibles con 'yum check-update'
En este paso, aprenderás a buscar actualizaciones de software disponibles para los paquetes instalados en tu sistema. Mantener tu sistema actualizado es una tarea crítica para la seguridad y la estabilidad, ya que las actualizaciones a menudo contienen parches para vulnerabilidades, correcciones de errores y nuevas funciones.
El comando yum check-update proporciona una forma segura de ver cuáles de tus paquetes instalados tienen versiones más recientes disponibles en los repositorios. Es importante tener en cuenta que este comando solo lista las actualizaciones disponibles; no las descarga ni las instala. Esto te permite revisar los posibles cambios antes de aplicarlos.
Para buscar todas las actualizaciones disponibles en tu sistema, ejecuta el siguiente comando en tu terminal. La parte || true evita que el shell se detenga cuando yum check-update devuelve el estado 100, que es la forma en que yum informa que hay actualizaciones disponibles.
sudo yum check-update | tee /home/labex/project/yum-check-update.txt || true
yum se conectará ahora a todos tus repositorios habilitados, actualizará su caché local de información de paquetes y comparará las versiones de tus paquetes instalados con las versiones más recientes disponibles.
Si hay actualizaciones disponibles, verás una lista de ellas, similar al siguiente ejemplo. Cada línea muestra el nombre del paquete, la nueva versión y el repositorio desde el cual se actualizará.
bind-libs.x86_64 <version> updates
bind-license.noarch <version> updates
curl.x86_64 <version> updates
glibc.x86_64 <version> updates
glibc-common.x86_64 <version> updates
... (output truncated) ...
Si tu sistema ya está completamente actualizado, el comando finalizará sin listar ningún paquete. Este comando es una parte esencial del mantenimiento rutinario del sistema, brindándote una imagen clara del estado de tu sistema antes de proceder con el proceso de actualización real en los siguientes pasos.
Aplicar una actualización de un solo paquete con 'yum update '
En este paso, aplicarás una actualización de un paquete específico. En el paso anterior, utilizaste yum check-update para ver una lista de todos los paquetes con actualizaciones disponibles. Aunque es común actualizar todo el sistema a la vez, hay situaciones en las que es posible que desees actualizar solo un paquete. Esto te da más control sobre los cambios en el sistema.
Elijamos un paquete de la lista que viste anteriormente para actualizarlo. Usaremos curl como ejemplo, que es una herramienta común para transferir datos. Si curl no estaba en tu lista de actualizaciones disponibles, puedes elegir otro paquete de esa lista.
Antes de actualizar el paquete, necesitamos degradar (downgrade) el paquete curl a una versión que tenga una actualización disponible.
sudo yum downgrade -y curl
Para actualizar solo el paquete curl, ejecuta el siguiente comando:
sudo yum update curl | tee /home/labex/project/curl-update.txt
yum resolverá ahora las dependencias de curl, determinará qué necesita ser actualizado y te presentará un resumen de la transacción. Este resumen muestra qué paquetes se actualizarán y el tamaño total de la descarga.
Resolving Dependencies
--> Running transaction check
---> Package curl.x86_64 0:<old_version> will be updated
---> Package curl.x86_64 0:<new_version> will be an update
--> Processing Dependency: libcurl = <new_version> for package: curl-<new_version>.x86_64
--> Running transaction check
---> Package libcurl.x86_64 0:<old_version> will be updated
---> Package libcurl.x86_64 0:<new_version> will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
curl x86_64 <new_version> updates <size>
Updating for dependencies:
libcurl x86_64 <new_version> updates <size>
Transaction Summary
================================================================================
Upgrade 1 Package (+1 Dependent package)
Total download size: <total_size>
Is this ok [y/d/N]:
Revisa los cambios. Si estás listo para continuar, escribe y y presiona Enter. yum descargará e instalará las actualizaciones.
Una vez finalizado el proceso, verás un mensaje "Complete!", confirmando que la actualización fue exitosa.
...
Running transaction
Updating : libcurl-<new_version>.x86_64 1/4
Updating : curl-<new_version>.x86_64 2/4
Cleanup : curl-<old_version>.x86_64 3/4
Cleanup : libcurl-<old_version>.x86_64 4/4
Verifying : curl-<new_version>.x86_64 1/4
...
Updated:
curl.x86_64 <new_version>
Dependency Updated:
libcurl.x86_64 <new_version>
Complete!
Ahora has actualizado con éxito un solo paquete y sus dependencias. Este enfoque dirigido es útil para aplicar parches de seguridad específicos o actualizaciones de funciones sin realizar una actualización completa del sistema.
Realizar una actualización completa del sistema con 'yum update'
En este paso, realizarás la tarea de gestión de paquetes más común e importante: una actualización completa del sistema. Aunque actualizar paquetes individuales es útil, actualizar regularmente todo el software de tu sistema es crucial para mantener la seguridad, la estabilidad y recibir las últimas funciones y correcciones de errores.
El comando yum update, cuando se ejecuta sin especificar un nombre de paquete, comparará todos los paquetes instalados con las versiones disponibles en tus repositorios habilitados y actualizará cada paquete para el cual se encuentre una versión más reciente.
Advertencia: Este proceso puede descargar una gran cantidad de datos y puede llevar una cantidad de tiempo significativa, dependiendo de cuántas actualizaciones haya disponibles y de la velocidad de tu conexión a red.
Para comenzar la actualización completa del sistema, ejecuta el siguiente comando en tu terminal:
sudo yum update | tee /home/labex/project/full-system-update.txt
Al igual que al actualizar un solo paquete, yum primero resolverá todas las dependencias y luego te presentará un resumen de la transacción. Esta lista probablemente será mucho más larga que la anterior, ya que incluye cada paquete que necesita ser actualizado.
Resolving Dependencies
--> Running transaction check
... (many packages listed) ...
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
bind-libs x86_64 <version> updates <size>
bind-license noarch <version> updates <size>
glibc x86_64 <version> updates <size>
glibc-common x86_64 <version> updates <size>
... (many more packages) ...
Transaction Summary
================================================================================
Upgrade <X> Packages
Total download size: <total_size>
Is this ok [y/d/N]:
Revisa cuidadosamente la lista de paquetes que se van a actualizar. Cuando estés listo para continuar, escribe n para omitir la actualización, ya que tomaría demasiado tiempo actualizar todos los paquetes en este entorno de práctica.
Ahora has revisado la transacción de actualización completa del sistema sin aplicarla. En una ventana de mantenimiento real, volverías a ejecutar sudo yum update y escribirías y cuando estés listo para instalar todas las actualizaciones disponibles.
Resumen
En este laboratorio, aprendiste los fundamentos de la gestión de paquetes de software en un sistema Linux basado en RHEL utilizando el gestor de paquetes YUM. Comenzaste inspeccionando un paquete instalado con yum list para verificar su estado y versión, y luego utilizaste yum deplist para examinar sus dependencias. También exploraste las fuentes de software configuradas listando todos los repositorios activos con el comando yum repolist.
El laboratorio te guió luego a través del proceso de actualización de paquetes. Aprendiste cómo buscar actualizaciones disponibles en todo el sistema sin instalarlas usando yum check-update. Practicaste la aplicación de una actualización específica a un solo paquete con yum update <package>, y concluiste revisando la transacción de actualización completa del sistema con el comando yum update, para que puedas reconocer lo que haría una actualización completa del sistema antes de aprobarla.



