Rocky Linux / Gestionar paquetes, actualizaciones y repositorios con DNF

DNF (Dandified YUM) es la herramienta básica en Rocky Linux para buscar, instalar, actualizar y eliminar paquetes, así como para gestionar el historial de transacciones. Antes de ejecutar un comando, es fundamental verificar la lista de paquetes objetivo y los cambios en las dependencias, y en los servidores de producción, asegurarse de que los repositorios y el rango de actualizaciones estén claramente definidos antes de aplicarlos.

Versión de DNF y formato básico

Dependiendo de la versión de Rocky Linux, la implementación de DNF y el formato de salida pueden variar, por lo que primero se debe comprobar la versión. El formato de comando común es dnf [OPCIONES] COMANDO [OBJETIVO].

dnf --version
dnf --help

Los comandos de consulta se pueden ejecutar como usuario normal, pero para instalar, eliminar o actualizar el sistema se requieren privilegios de administrador.

Búsqueda de paquetes y verificación de información

Buscar por nombre y resumen

dnf search nginx
dnf info nginx

De forma predeterminada, dnf search busca en los nombres y resúmenes de paquetes. dnf search --all amplía la búsqueda a descripciones y direcciones del paquete. dnf info muestra detalles como versión, arquitectura y repositorio; examine las entradas si aparecen varias versiones o arquitecturas.

Buscar paquetes que proporcionen archivos o comandos

dnf provides '*/semanage'
dnf provides /usr/bin/rsync

Si no conoce la ruta exacta, puede usar comodines. Es más seguro rodear el patrón con comillas en la shell para que no se expanda primero.

Instalación y reinstalación de paquetes

sudo dnf install nginx
sudo dnf reinstall nginx

install resuelve las dependencias necesarias. reinstall requiere que el paquete ya esté instalado y que el mismo RPM esté disponible para descargar. No restablece necesariamente la configuración modificada por el administrador.

Los archivos RPM locales también pueden instalarse con DNF para que se resuelvan las dependencias desde el repositorio.

sudo dnf install ./example-package.rpm

Verificación y aplicación de actualizaciones

Consulta de elementos que se pueden actualizar

dnf check-update
dnf updateinfo list

dnf check-update puede devolver el código de salida 100 si hay actualizaciones disponibles. Si un script de shell no distingue esto de un código de error normal, puede interpretarlo erróneamente como un fallo en lugar de un estado "actualización disponible".

Actualizar todos los paquetes o paquetes específicos

sudo dnf upgrade
sudo dnf upgrade openssl

Las actualizaciones del kernel, la biblioteca C y los servicios principales pueden requerir reinicio o reinicio de servicios. En un entorno operativo, prepare primero los detalles de los cambios, el tiempo de mantenimiento y el método de reversión.

Eliminación de paquetes y limpieza de dependencias innecesarias

sudo dnf remove nginx
sudo dnf autoremove --assumeno

remove puede proponer eliminar paquetes que dependen del objetivo y dependencias que dejan de ser necesarias. Lea la lista completa antes de confirmar. autoremove --assumeno permite revisar la propuesta de limpieza sin aceptar su ejecución.

Gestión de listas de instalación y repositorios

Consulta de listas de paquetes

dnf list --installed
dnf list --available
dnf list --upgrades

Verificación del estado del repositorio

dnf repolist
dnf repolist --all
dnf repository-packages appstream list --available

Antes de activar un repositorio, compruebe su proveedor, la firma, el soporte y si puede sustituir paquetes de los repositorios habituales. Los nombres example-repo y package-name de los ejemplos son marcadores que debe reemplazar por valores existentes. Las opciones afectan a esa invocación; habilitar uno no deshabilita los demás repositorios.

sudo dnf --disablerepo='example-repo' upgrade
sudo dnf --enablerepo='example-repo' install package-name

Revisión del historial de transacciones y evaluación de reversión

dnf history
dnf history info ID_TRANSACCIÓN
sudo dnf history undo ID_TRANSACCIÓN

history undo puede fallar si el repositorio ya no proporciona la versión anterior necesaria o si las dependencias han cambiado después de la transacción. Tampoco es una función de copia de seguridad que revierta bases de datos, configuraciones o datos de aplicaciones, por lo que se debe preparar un método de reversión de operaciones por separado.

Gestión de caché y metadatos

Comando Propósito
dnf makecache Descargar previamente los metadatos del repositorio activo.
dnf clean metadata Eliminar los metadatos del repositorio almacenados.
dnf clean packages Eliminar los archivos de paquetes que quedan en la caché.
dnf clean all Limpiar la caché de DNF, incluidos metadatos y paquetes.

No es necesario ejecutar clean all de manera habitual cada vez que ocurre un error de repositorio. Verificar primero la red, la hora del sistema, la dirección del repositorio y los mensajes de error de la firma GPG (GNU Privacy Guard) ayuda a identificar la causa.

Resumen de comandos de uso frecuente

Propósito Comando
Búsqueda dnf search TÉRMINO
Verificación de información dnf info PAQUETE
Instalación sudo dnf install PAQUETE
Actualización sudo dnf upgrade
Eliminación sudo dnf remove PAQUETE
Paquete de archivos proporcionados dnf provides '*/ARCHIVO'
Historial de transacciones dnf history
Lista de repositorios dnf repolist --all

Cómo operar de manera segura

  • Antes de usar la opción de confirmación automática, la lista de instalaciones o eliminaciones sugerida por DNF debe ser revisada primero por una persona.
  • Para servidores importantes, haga una copia de seguridad de los datos y configuraciones antes de actualizar y pruebe los procedimientos de recuperación.
  • Verifique la fuente de los archivos de repositorio y las claves GPG, y no mantenga activados permanentemente repositorios externos innecesarios.
  • Varios servidores deben usar la misma instantánea de repositorio o procedimientos automatizados verificados para reducir las diferencias de versión.

Documentos de referencia

Puede consultar las opciones detalladas y el estado de finalización por comando en la documentación oficial de comandos de DNF.