Gibt es eine Möglichkeit zu sehen, was genau die "Verarbeitungsauslöser" pro Paket bewirken?

15

Wie ich verstanden habe, werden mit den üblichen " Verarbeitungstriggern für <Paketname> " einige paket- und systemspezifische Aufgaben ausgeführt, z. B. das Hinzufügen von Elementen zu einem Startmenü oder das Aktualisieren einer Konfigurationsdatei. Gibt es eine tatsächliche Möglichkeit zu sehen, was genau während dieses Schritts getan oder geändert wird? Wo kann man das genaue Verhalten des Schrittes finden?

zxcdw
quelle

Antworten:

16

Es gibt einige Bash-Skripte, für die Pakete ausgelöst werden müssen.

  • Angenommen, die dpkgAusgabe sieht folgendermaßen aus:

    Vorbereiten der Ersetzung von zim 0.52-1 (mithilfe von ... / archives / zim_0.52-1_all.deb) ...
    Ersatz-Zim ... auspacken
    Trigger für shared-mime-info werden verarbeitet ...
    Trigger für Menü werden verarbeitet ...
  • Intern dpkgwird das postinstSkript für jedes dieser Pakete mit der triggeredBefehlszeilenoption und null oder mehr Triggeroptionen aufgerufen.

  • So öffnen Sie einfach /var/lib/dpkg/info/PACKAGE.postinst(es ist ein Bash - Skript), und einfach schauen , was passiert , wenn $1isttriggered

Beispiel: man-dbTrigger

Eines der am häufigsten verwendeten „Verarbeitung Trigger“ Sie sehen, ist für man-db, wann immer das Paket einen hat installiert Mann - Seite.

Wenn Sie öffnen /var/lib/dpkg/info/man-db.postinst, finden Sie diesen Abschnitt:

if ["$ 1" = ausgelöst]; dann
    # Wir drucken hier keine Statusnachricht, wie dpkg bereits sagte
    # "Verarbeitung von Triggern für man-db ...".
    run_mandb -pq
    Ausfahrt 0
fi

Sie können also sehen, dass Processing triggers for man-db ...einfach die run_mandbFunktion (auch im postinstSkript enthalten) mit der -pqOption ausgeführt wird.

Hilfreiche Ressourcen:

  1. Der Versuch, dpkg auszulösen, ist nützlicher und weniger schmerzhaft
  2. dpkg löst das verlorene How-to-Dokument aus
ish
quelle
Warum ist es so langsam ?!
Antonio Petricca