web-dev-qa-db-fra.com

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

Comme je l'ai bien compris, l'habituel "traitement des déclencheurs pour <nom_package>" effectue certaines tâches spécifiques aux packages et aux systèmes, telles que l'ajout d'éléments dans 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é pendant cette étape? Où peut-on trouver le comportement exact de l'étape?

14
zxcdw

Oui, mais cela nécessite de fouiller dans quelques scripts bash pour les paquets en cours de déclenchement.

  • Supposons que la sortie dpkgressemble à ceci:

    Préparer le remplacement de zim 0.52-1 (à l'aide de .../archives/zim_0.52-1_all.deb) ... 
     Déballage du remplacement de zim ... 
     Traitement des déclencheurs pour mime-partagé-info ... 
     Traitement des déclencheurs pour le menu ...
  • En interne, dpkgappelle le script postinstpour chacun de ces packages avec l'option de ligne de commande triggeredet aucune ou plusieurs options de déclencheur.

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

Exemple: man-db triggers

L'un des "déclencheurs de traitement" les plus courants que vous verrez concerne man-db, chaque fois que le paquet en cours d'installation comporte une page man .

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

 if ["$ 1" = déclenché]; then 
 # 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 ... aboutit simplement à l'exécution de la fonction run_mandb (également présente dans le script postinstname__) avec l'option -pq.

Ressources utiles:

  1. Essayer de rendre les déclencheurs de dpkg plus utiles et moins douloureux
  2. déclencheurs dpkg, le document d’informations perd
16
ish