Trigger für man-db verarbeiten

Trigger für man-db verarbeiten

Beim Ausführen von sudo aptitude upgrade friert die Konsole nach fast jedem Paket-Upgrade für längere Zeit mit der Meldung „Trigger für man-db werden verarbeitet …“ ein. Was könnte das Problem sein und wie kann ich es beheben?

Ubuntu-Version: 12.04 (sowohl Server als auch Xubuntu)

Dank im Voraus.


Update: Nach meinen weiteren Tests scheint dieses Problem mit dem Paket-Autofs zusammenzuhängen. Das Entfernen von Autofs hat die Probleme behoben. Keine Ahnung, warum. Ich muss dann Softlinks anstelle von Autofs für mein Dateisystem verwenden, um dieses Problem (und zwei weitere hier veröffentlichte Probleme) zu vermeiden.

Antwort1

Der Processing triggers for man-dbSchritt wird nur ausgeführt, wenn die Datei /var/lib/man-db/auto-updatevorhanden ist. Dies ist eine leere Datei, die ausschließlich dazu dient, dieses Verhalten zu steuern. Sie kann daher problemlos entfernt werden, um diesen zeitaufwändigen und möglicherweise unnötigen Prozess zu deaktivieren.

Ich persönlich deaktiviere diesen Trigger auf allen meinen Systemen. Obwohl der Man-DB-Cache die Geschwindigkeit und Funktionalität des Manualpage-Systems verbessern soll, habe ich nach dem Deaktivieren des Triggers keine merklichen Leistungseinbußen oder Funktionsprobleme festgestellt.

Antwort2

Vorsicht:Durch Ausführen des folgenden Befehls werden integrale Teile von Ubuntu entfernt, z. B. die Möglichkeit, Handbuchseiten mit dem manBefehl und verwandte Dienstprogramme wie aproposund zu lesen whatis. Darüber hinaus wird das ubuntu-standardMetapaket entfernt, wodurch wiederum eine zusätzliche Anzahl von Paketen als manuell installiert markiert wird. Befolgen Sie diesen Rat mit äußerster Vorsicht.

Könnte für jemanden hilfreich sein: Ich bin bei unserer CI regelmäßig auf dieses Problem gestoßen.

Führen Sie einfach Folgendes aus:

sudo apt-get remove --purge man-db

Der Befehl entfernt das man-db-Paket vollständig, das in unserem Fall auf CI ohnehin völlig nutzlos war.

Antwort3

Möglicherweise ist der ManDB-Index beschädigt.

Überprüfen Sie den Index und erstellen Sie ihn neu

sudo mandb -t
rm -rf /var/cache/man
sudo mandb -c

Antwort4

Der man-db-Update-Trigger wird durch ein verstecktes Flag in Debconf gesteuert, das im Dateisystem im Pfad zwischengespeichert ist /var/lib/man-db/auto-update. Diese zwischengespeicherte Flag-Datei wird aus der Debconf-Datenbank im man-db-Postinst-Skript hier synchronisiert:https://sources.debian.org/src/man-db/2.11.2-2/debian/postinst/#L70-L79.

Die richtige Art, das Auto-Update-Flag von man-db umzuschalten, besteht darin, den Wert von in der Debconf-Datenbank zu ändern man-db/auto-updateund falsedas man-db-Postinst-Skript, das den Wert mit der Festplatte synchronisiert, erneut auszuführen. Führen Sie die folgenden Befehle als Root aus:

echo "set man-db/auto-update false" | debconf-communicate; dpkg-reconfigure man-db

Dieses Flag wurde ursprünglich eingeführt, um den Neuaufbau der man-db-Datenbank auf Debian/Ubuntu-Build-Daemons zu vermeiden; siehe Debian-Bugs554914Und579075für Details.

verwandte Informationen