Cómo reconstruir una base de datos RPM dañada en CentOS

Cómo reconstruir una base de datos RPM dañada en CentOS

La base de datos RPM. está formada por archivos en el directorio /var/lib/rpm/ en CentOS. y otras distribuciones empresariales de Linux como como RHEL. openSUSE. Oracle Linux. y más.

Si la base de datos RPM. es corrupto, RPM. no funcionará correctamente, por lo que las actualizaciones no se pueden aplicar a su sistema, encuentra errores al actualizar paquetes en su sistema a través del administrador de paquetes YUM. El peor de los casos es no poder ejecutar correctamente ningún comando rpm y yum.

Lea también. 20 ejemplos prácticos de comandos 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 cierto software de terceros, eliminación de paquetes específicos y muchos otros.

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

Reconstruir la base de datos RPM dañada en CentOS

freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotId : “tecmint_incontent”);

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

# mkdir/backups/# tar-zcvf/backups/rpmdb-$ (fecha + “% d% m% Y”). tar.gz/var/lib/rpm Copia de seguridad de la base de datos RPM  Copia de seguridad de la base de datos RPM Copia de seguridad Base de datos RPM

A continuación, verifique la integridad del archivo de metadatos del paquete maestro /var/lib/rpm/Packages. este es el archivo que necesita reconstruirse, pero primero elimine los archivos /var/lib/rpm/__ db *. para evitar bloqueos obsoletos usando los siguientes comandos.

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

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

# cd/var/lib/rpm/# mv Packages Packages.back #/usr/lib/rpm/rpmdb_dump Packages.back |/usr/lib/rpm/rpmdb_load Paquetes #/usr/lib/rpm/rpmdb_verify Paquetes  Volcar y cargar Base de datos RPM  Dump and Load RPM Database Dump y cargar la base de datos RPM

Ahora para verificar los encabezados de la base de datos, consulte todos los paquetes instalados usando los indicadores-q y-a, y trate de observar cuidadosamente cualquier error enviado al stderror.

# rpm-qa>/dev/null #output se descarta para permitir la impresión de errores solamente

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

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

Usar la herramienta dcrpm para detectar y corregir la base de datos RPM

También descubrimos la herramienta de línea de comandos dcrpm. (detectar y corregir rpm) que se utiliza para identificar y corregir problemas conocidos relacionados 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 fuentes e instálelo usando setup.py. (que debería tomar la dependencia psutil. de pypi. también), como se muestra.

# git clone https://github.com/facebookincubator/dcrpm.git # cd dcrpm # python setup.py install

Una vez que haya instalado dcrpm. ejecútelo como se muestra.

# dcrpm

Finalmente, intente ejecutar su comando rpm o yum fallido nuevamente para ver si todo está funcionando bien.

dcrpm Repositorio de Github: https://github.com/facebookincubator/dcrpm Usted puede encontrar más información en 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 RPM dañada en CentOS. Para hacer preguntas o compartir sus opiniones sobre esta guía, utilice el formulario de comentarios a continuación.