Existe-t-il un moyen de voir exactement ce que les «déclencheurs de traitement» font par paquet?

15

Comme je l'ai compris, les " déclencheurs de traitement pour <nom du paquet> " effectuent des tâches spécifiques au package et au système, telles que l'ajout d'éléments à un menu de lancement ou la mise à jour d'un fichier de configuration. Existe-t-il un moyen réel de voir ce qui est exactement fait ou modifié au cours de cette étape? Où peut-on trouver le comportement exact de l'étape?

zxcdw
la source

Réponses:

16

Oui, mais cela nécessite de fouiller dans certains scripts bash pour les packages déclenchés.

  • Supposons que la dpkgsortie ressemble à:

    Préparation du remplacement de zim 0.52-1 (en utilisant ... / archives / zim_0.52-1_all.deb) ...
    Déballage du zim de remplacement ...
    Traitement des déclencheurs pour les informations MIME partagées ...
    Traitement des déclencheurs du menu ...
  • En interne, ce dpkgqui est appelé le postinstscript pour chacun de ces packages avec l' triggeredoption de ligne de commande et zéro ou plusieurs options de déclenchement.

  • Donc, vous ouvrez simplement /var/lib/dpkg/info/PACKAGE.postinst(c'est un script bash), et cherchez simplement ce qui se passe quand $1esttriggered

Exemple: man-dbdéclencheurs

L' un des plus communs « déclencheurs de traitement » vous voyez est pour man-db, chaque fois que le paquet en cours d' installation a un homme page.

Si vous ouvrez /var/lib/dpkg/info/man-db.postinst, vous trouverez cette section:

si ["$ 1" = déclenché]; ensuite
    # Nous n'imprimons pas de message d'état ici, comme l'a déjà dit dpkg
    # "Traitement des déclencheurs pour man-db ...".
    run_mandb -pq
    sortie 0
Fi

Ainsi, vous pouvez voir que Processing triggers for man-db ...la run_mandbfonction (également trouvée dans le postinstscript) est exécutée avec l' -pqoption.

Ressources utiles:

  1. Essayer de rendre les déclencheurs dpkg plus utiles et moins douloureux
  2. déclencheurs dpkg, le document pratique perdu
ish
la source
Pourquoi c'est si lentement?!
Antonio Petricca