Rocky Linux / Consultar paquetes instalados, archivos e historial con DNF y RPM

Los paquetes instalados en Rocky Linux se pueden verificar con dnf y rpm. Normalmente, se utiliza dnf, que muestra información del repositorio y dependencias juntas, y para consultar la base de datos RPM con precisión o verificar qué paquete posee un archivo, es conveniente usar rpm.

Ver la lista completa de paquetes instalados

DNF (Dandified YUM) es el gestor de paquetes de Rocky Linux. Los ejemplos de historial siguen la interfaz de DNF 4; compruebe la versión instalada con dnf --version. El siguiente comando muestra el nombre del paquete instalado, la versión y la fuente de instalación en forma de tabla.

dnf list --installed

Para listar los identificadores de los paquetes registrados en la base RPM, use el comando siguiente. La presentación habitual de rpm -qa incluye nombre, versión, lanzamiento y arquitectura; no devuelve únicamente el nombre.

rpm -qa | sort

Si el resultado es largo, se puede dividir en páginas con less o buscar solo los nombres necesarios con grep.

rpm -qa | sort | less
rpm -qa | grep -i postgresql

Verificación de la instalación y la información de un paquete específico

Cuando se conoce el nombre

rpm -q muestra el nombre y la versión exactos si el paquete está instalado; si no está instalado, devuelve un mensaje de error y un estado de salida distinto de 0.

rpm -q curl
dnf info --installed curl

Al buscar un comando o el paquete de un archivo

rpm -qf consulta qué paquete posee una ruta. Un enlace simbólico y su destino pueden pertenecer a paquetes distintos: use readlink -f cuando quiera consultar el destino real. Antes del ejemplo con python3, compruebe con type -a python3 que command -v devuelve la ruta de un ejecutable externo, en lugar de un alias o una función.

rpm -qf /usr/bin/curl
rpm -qf "$(readlink -f "$(command -v python3)")"

Los paquetes de repositorio que proporcionan comandos o archivos aún no instalados se buscan con dnf provides.

dnf provides '*/semanage'

Ver detalles de la versión, hora de instalación y origen

Usando el formato de consulta de RPM, se pueden mostrar sólo los elementos necesarios en el orden deseado. El ejemplo a continuación separa por tabulaciones el nombre del paquete, época·versión·lanzamiento y arquitectura.

rpm -qa --qf '%{NAME}\t%{EPOCHNUM}:%{VERSION}-%{RELEASE}\t%{ARCH}\n' | sort

El orden de los paquetes instalados recientemente se verifica de la siguiente manera.

rpm -qa --last | head -n 30
Propósito de verificación Comando recomendado
Lista completa de instalaciones dnf list --installed o rpm -qa
Verificar paquete específico rpm -q PAQUETE
Detalles del paquete dnf info --installed PAQUETE
Paquete propietario del archivo rpm -qf RUTA_ARCHIVO
Buscar paquete que proporciona el archivo dnf provides '*/ARCHIVO'
Orden de instalación más reciente rpm -qa --last

Consultar motivos de instalación e historial de cambios

Elementos instalados por el usuario

En DNF 4, history userinstalled muestra paquetes que se conservan frente a la eliminación automática según su motivo de instalación: incluye los solicitados por el usuario, los de grupos o perfiles de módulos y los instalados fuera de DNF. Por tanto, no equivale a una lista exacta de los nombres que una persona escribió en órdenes de instalación.

dnf history userinstalled

La clasificación depende de los motivos y metadatos disponibles y no reconstruye por sí sola toda la intención del administrador o un historial de migraciones. Antes de planificar una limpieza, revise servicios y dependencias; no elimine paquetes automáticamente basándose en esta lista.

Historial de transacciones de DNF

El historial de instalaciones, actualizaciones y eliminaciones, así como los detalles de transacciones específicas, se pueden consultar de la siguiente manera.

dnf history
dnf history info ID_TRANSACCIÓN

Verificación de archivos instalados y cambios de configuración

rpm -V compara atributos registrados por RPM con los archivos actuales: tamaño, resumen de contenido, permisos y otros metadatos seleccionados. Revise tanto el estado de salida como los errores. Que no se detecten diferencias en lo verificado no demuestra la integridad de todos los archivos ni constituye una auditoría completa de seguridad.

sudo rpm -V openssh-server

Los archivos de configuración bajo /etc se marcarán como diferentes incluso si el administrador los cambió intencionalmente. No restaure inmediatamente los archivos si se muestran diferencias; compare los resultados con el historial de gestión de cambios y las copias de seguridad.

Guardar la lista de paquetes del servidor en un archivo

Para la respuesta ante fallos o migración, guardar el nombre, la versión y la arquitectura en texto facilita la comparación entre dos momentos o dos servidores.

rpm -qa --qf '%{NAME}\t%{EPOCHNUM}:%{VERSION}-%{RELEASE}\t%{ARCH}\n' | sort > installed-packages.tsv

Esta lista es un registro del estado en ese momento y no un script de instalación para ejecutar tal cual en otro servidor. Si la versión principal de Rocky Linux, los repositorios activos y los flujos de módulos, cuando existan, son diferentes, no se puede obtener la misma versión, por lo que se debe probar por separado el procedimiento de recuperación.

Problemas comunes

  • Si el comando no se encuentra: En la instalación mínima, algunos complementos de DNF pueden faltar. Primero, verifique el paquete que proporciona el comando.
  • Si el nombre es diferente de lo esperado: El nombre del ejecutable y el nombre del paquete pueden no coincidir, por lo que use rpm -qf o dnf provides.
  • Si las listas parecen diferentes entre sí: dnf combina y muestra los metadatos del repositorio, mientras que rpm consulta directamente la base de datos RPM local. Elija la herramienta adecuada para fines de comparación.
  • Si ocurre un error en la base de datos: Primero verifique si se están realizando otras operaciones de paquetes y no elimine arbitrariamente archivos de bloqueo o la base de datos.

Documentos de referencia