Al ejecutar la actualización de Sudo aptitude, la consola se congela por mucho tiempo después de casi cada actualización de paquete con un mensaje "Procesando desencadenantes para man-db ...". ¿Cuál podría ser el problema y cómo puedo solucionarlo?
Versión de Ubuntu: 12.04 (tanto Server como Xubuntu)
Gracias de antemano.
Actualización: Parece que este problema está relacionado con los paquetes autofs en mis pruebas adicionales. La eliminación de autofs resolvió los problemas. No tengo idea de por qué. Luego tengo que usar enlaces suaves en lugar de autofs para mi sistema de archivos para evitar este problema (y otros dos problemas publicados aquí también).
Respuesta1
El Processing triggers for man-db
paso solo se ejecuta si el archivo /var/lib/man-db/auto-update
existe. Este es un archivo vacío con el único propósito de controlar este comportamiento, por lo que se puede eliminar de forma segura para desactivar este proceso que consume mucho tiempo y posiblemente sea innecesario.
Personalmente desactivo este activador en todos mis sistemas. Si bien se supone que el caché man-db mejora la velocidad y la funcionalidad del sistema de páginas del manual, no he experimentado ninguna degradación notable del rendimiento o problema funcional después de deshabilitar el activador.
Respuesta2
Precaución:La ejecución del siguiente comando eliminará partes integrales de Ubuntu, como la capacidad de leer páginas del manual con el man
comando y utilidades relacionadas como apropos
y whatis
. Además, elimina el ubuntu-standard
metapaquete, lo que a su vez marcará una cantidad adicional de paquetes como instalados manualmente. Siga este consejo con extrema precaución.
Podría ser útil para alguien: me encontré con este problema en nuestro CI con regularidad.
Simplemente ejecute lo siguiente:
sudo apt-get remove --purge man-db
El comando elimina completamente el paquete man-db, que en nuestro caso en CI, de todos modos era completamente inútil.
Respuesta3
Es posible que el índice mandb esté dañado.
revisa el índice y vuelve a crearlo
sudo mandb -t
rm -rf /var/cache/man
sudo mandb -c
Respuesta4
El disparador de actualización man-db está controlado por un indicador oculto en debconf, que se almacena en caché en el sistema de archivos en la ruta /var/lib/man-db/auto-update
. Ese archivo de bandera en caché se sincroniza desde la base de datos debconf en el script man-db postinst aquí:https://sources.debian.org/src/man-db/2.11.2-2/debian/postinst/#L70-L79.
La forma correcta de alternar el indicador de actualización automática de man-db es cambiar el valor de man-db/auto-update
to false
en la base de datos debconf y volver a ejecutar el script postinst de man-db que sincroniza el valor con el disco. Ejecute los siguientes comandos como root:
echo "set man-db/auto-update false" | debconf-communicate; dpkg-reconfigure man-db
Esta opción se introdujo originalmente para evitar la reconstrucción de la base de datos man-db en demonios de compilación de Debian/Ubuntu; ver errores de Debian554914y579075para detalles.