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?
Oui, mais cela nécessite de fouiller dans quelques scripts bash pour les paquets en cours de déclenchement.
Supposons que la sortie dpkg
ressemble à 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, dpkg
appelle le script postinst
pour chacun de ces packages avec l'option de ligne de commande triggered
et aucune ou plusieurs options de déclencheur.
/var/lib/dpkg/info/PACKAGE.postinst
(c'est un script bash), et cherchez simplement ce qui se passe lorsque $1
est triggered
name__man-db
triggersL'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 postinst
name__) avec l'option -pq
.
Ressources utiles: