Cómo reconstruir la base de datos de RPM corrupta en CentOS

Cómo reconstruir la base de datos de RPM corrupta en CentOS

El Rpm la base de datos está compuesta de archivos bajo el /var/lib/rpm/ directorio en Cento y otras distribuciones empresariales de Linux como Rhel, usura de apertura, Oracle Linux y más.

Si el Rpm la base de datos está dañada, Rpm No funcionará correctamente, por lo que las actualizaciones no se pueden aplicar a su sistema, encuentre errores al actualizar los paquetes en su sistema a través de YUM Package Manager. El peor de los casos es no poder ejecutar ninguna RPM y beque comandos con éxito.

Leer también: 20 Ejemplos prácticos del comando RPM en Linux

Hay una serie de factores que pueden conducir a la corrupción de la base de datos RPM, como transacciones anteriores incompletas, instalación de ciertos software de terceros, eliminación de paquetes específicos y muchos otros.

En este artículo, mostraremos cómo reconstruir una base de datos RPM corrupta; De esta manera, puede recuperarse de una corrupción de la base de datos de RPM en CentOS. Esto requiere privilegios de usuario raíz, de lo contrario, use el comando sudo para obtener esos privilegios.

Reconstruir la base de datos de rpm corrupta en CentOS

Primero comience por hacer una copia de seguridad de su base de datos RPM actual antes de continuar (es posible que la necesite en el futuro), utilizando los siguientes comandos.

# mkdir /backups / # tar -zcvf /backups /rpmdb -$ (fecha +"%d%m%y").alquitrán.gz/var/lib/rpm 
Base de datos RPM de respaldo

A continuación, verifique la integridad del archivo de metadatos del paquete maestro /var/lib/rpm/paquetes; Este es el archivo que necesita reconstrucción, pero primero elimina /var/lib/rpm/__ db* archivos para evitar bloqueos rancios utilizando los siguientes comandos.

# rm -f/var/lib/rpm/__ db* #/usr/lib/rpm/rpmdb_verify/var/lib/rpm/paquetes 
Verificar la base de datos de RPM

En caso de que la operación anterior falle, lo que significa que aún encuentra errores, entonces debe volcar y cargar una nueva base de datos. Verifique también la integridad del archivo de paquetes recién cargados de la siguiente manera.

# cd/var/lib/rpm/ # paquetes de paquetes de MV.Atrás #/usr/lib/rpm/rpmdb_dump paquetes.Atrás | /usr/lib/rpm/rpmdb_load paquetes #/usr/lib/rpm/rpmdb_verify paquetes 
Volcar y cargar la base de datos de RPM

Ahora para verificar los encabezados de la base de datos, consulte todos los paquetes instalados utilizando el -Q y -a banderas e intente observar cuidadosamente cualquier error enviado al esterro.

# rpm -qa>/dev/null #Output se descartan para habilitar la impresión de errores solamente 

Por último, pero no menos importante, reconstruya la base de datos RPM utilizando el siguiente comando, el -VV La opción permite mostrar mucha información de depuración.

# rpm -vv --rebuilddb 
Reconstruir la base de datos de RPM

Use la herramienta DCRPM para detectar y corregir la base de datos de RPM

También descubrimos el DCRPM (Detectar y corregir la herramienta de línea de comandos de RPM) utilizada para identificar y corregir problemas bien conocidos con la corrupción de la base de datos RPM. Es una herramienta simple y fácil de usar que puede ejecutar sin opción. Para un uso efectivo y confiable, debe ejecutarlo regularmente a través de Cron.

Puede instalarlo desde la fuente; Descargue el árbol de origen e instálelo usando configuración.py (que debería agarrar el psutilo dependencia de pypi también), como se muestra.

# clon git https: // github.com/facebookincubator/dcrpm.Git # CD DCRPM # Python Setup.instalación de PY 

Una vez que haya instalado DCRPM, ejecutarlo como se muestra.

# DCRPM 

Finalmente, intente ejecutar su comando fallido RPM o YUM nuevamente para ver si todo funciona bien.

Repositorio de DCRPM GitHub: https: // github.com/facebookincubator/dcrpm
Puede encontrar más información de la página de recuperación de la base de datos RPM.

Eso es todo! En este artículo, hemos explicado cómo reconstruir una base de datos de RPM corrupta en CentOS. Para hacer cualquier pregunta o compartir sus pensamientos sobre esta guía, use el formulario de comentarios a continuación.