Hace unos días, uno de nuestros clientes informó que no podía instalar ningún paquete usando el comando yum usando CentOS Linux. Después de investigar, encontré que la base de datos RPM estaba dañada. Este es un problema muy común en los servidores CentOS y RHEL.
Los servidores CentOS y RHEL usan rpm para administrar la instalación, eliminación y actualización de paquetes. Si la base de datos rpm está corrupta de algún modo, otras herramientas del sistema que dependen de RPM, como Yum/Dnf, dejarán de funcionar.
¿Cómo puedo reconstruir la base de datos RPM en CentOS o RHEL?
Instale algunos requisitos para asegurarse de que puede arreglar su base de datos RPM:
yum install db4-utils yum-utils -y
Siempre asegúrese de tener una copia de seguridad de su base de datos RPM actual
rsync -avpr /var/lib/rpm /var/lib/rpm.bak
Reconstruir una base de datos RPM corrupta:2 soluciones
1) Eliminar archivos de base de datos RPM y reconstruir:
rm /var/lib/__db* -fv rpm --rebuilddb
El comando rpm –rebuilddb reconstruye la base de datos RPM basándose en el archivo /var/lib/rpm/Packages. Los archivos de "Paquetes" son necesarios para reconstruir su base de datos RPM. En servidores lentos, este comando puede tardar algún tiempo en ejecutarse.
Intente usar yum normall ahora, si eso no soluciona su problema, continúe con el paso 2:
2) Recargar paquetes RPM
Otra buena estrategia para reconstruir su base de datos RPM corrupta es usar las herramientas db_dump y db_load. En el ejemplo a continuación, usaremos db_dump para volcar el archivo de paquetes, y luego se usará db_load para volver a cargar el archivo de paquetes. Esta es una forma alternativa de solucionar problemas de RPM Db:
cd /var/lib/rpmdb mv Packages Packages.bak db_dump Packages.bak | db_load Packages
Como una verificación de cordura adicional, consulte todos los encabezados en la base de datos
rpm -qa
Finalmente, reconstruya la base de datos RPM:
rpm --rebuilddb
En este punto, debería tener su base de datos RPM funcionando completamente nuevamente. Háganos saber si estos dos pasos no funcionan para usted o si conoce otras soluciones para compartir con nosotros.
Lecturas adicionales
- Reconstruya una base de datos RPM, por rpm.org:http://www.rpm.org/max-rpm/ch-rpm-miscellania.html
- Reconstruyendo la base de datos RPM, por:fedoraproject.org: http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch04s05s02.html
- RPM DB Recovery en RHEL, por Daniel Berrange: http://people.redhat.com/berrange/notes/rpmrecovery.html
Reconstruir una base de datos RPM dañada fue modificada por última vez:7 de febrero de 2017 por Esteban Borges