Cuando se trabaja con la administración de paquetes en sistemas Linux, como CentOS, AlmaLinux, RockyLinux y otros derivados, es posible que se encuentren errores relacionados con la base de datos RPM. Si alguna vez ha enfrentado un mensaje de error similar a este:
[root@stackscale ~]# dnf upgrade
error: rpmdb: BDB0113 Thread/process 696734/140351699974016 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: no se puede abrir la base de datos Packages en /var/lib/rpm
Error: Error: rpmdb open failed
Es un indicativo claro de que la base de datos RPM está corrompida. Este tipo de problemas puede surgir debido a diversas razones, pero la buena noticia es que tienen solución.
Solución al problema
Para solucionar este problema, es necesario realizar una copia de seguridad y luego reconstruir la base de datos rpmdb. A continuación, se describen los pasos que el usuario debe seguir:
- Crear un directorio de respaldo: Antes de realizar cualquier acción, es esencial asegurarse de que no se pierdan datos. Por ello, primero se crea un directorio para almacenar las copias de seguridad:
mkdir /var/lib/rpm/backup
- Copiar los archivos relevantes al directorio de respaldo: Con este comando, se asegurará de mantener una copia de los archivos de la base de datos en caso de cualquier eventualidad:
cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
- Eliminar archivos antiguos: Con el siguiente comando, eliminará los archivos antiguos que puedan estar causando el problema:
rm -f /var/lib/rpm/__db.[0-9][0-9]*
- Verificar el estado de los paquetes: Esta acción es principalmente para comprobar que todo esté en orden:
rpm --quiet -qa
- Reconstruir la base de datos: Con este comando, iniciará el proceso de reconstrucción de la base de datos:
rpm --rebuilddb
- Limpiar el repositorio YUM: Finalmente, como buen protocolo de mantenimiento, limpie el cache del repositorio:
yum clean all
Tras seguir estos pasos, la base de datos rpmdb debería estar funcionando correctamente, y los errores previamente mencionados no deberían volver a aparecer. Es importante recordar siempre hacer copias de seguridad y actuar con precaución al realizar cambios en el sistema.