C'è un modo per vedere cosa fanno esattamente i "trigger di elaborazione" per pacchetto?


15

Come ho capito, i soliti " Trigger di elaborazione per <nomepacchetto> " eseguono alcune attività specifiche del pacchetto e del sistema come aggiungere elementi a un menu di avvio o aggiornare un file di configurazione. Esiste un modo effettivo per vedere cosa viene fatto o modificato esattamente durante questo passaggio? Dove si trova l'esatto comportamento del passaggio?

Risposte:


16

C'è, ma richiede di scavare attraverso alcuni script bash per i pacchetti che vengono attivati.

  • Supponiamo che l' dpkgoutput assomigli a:

    Preparazione alla sostituzione di zim 0.52-1 (usando ... / archives / zim_0.52-1_all.deb) ...
    Disimballaggio sostitutivo zim ...
    Trigger di elaborazione per informazioni-mime condivise ...
    Trigger di elaborazione per il menu ...
  • Internamente, ciò che dpkgfa è chiamare lo postinstscript per ciascuno di questi pacchetti con l' triggeredopzione della riga di comando e zero o più opzioni di trigger.

  • Quindi, apri semplicemente /var/lib/dpkg/info/PACKAGE.postinst(è uno script bash) e cerchi semplicemente cosa succede quando lo $1ètriggered

Esempio: man-db trigger

Uno dei "trigger di elaborazione" più comuni che vedrai è per man-dbogni volta che il pacchetto che viene installato ha un uomo pagina .

Se apri /var/lib/dpkg/info/man-db.postinst, troverai questa sezione:

se ["$ 1" = attivato]; poi
    # Non stampiamo un messaggio di stato qui, come già detto da dpkg
    # "Elaborazione di trigger per man-db ...".
    run_mandb -pq
    uscita 0
fi

Quindi puoi vedere che Processing triggers for man-db ...risulta semplicemente nella run_mandbfunzione (che si trova anche nello postinstscript) di essere eseguita con l' -pqopzione.

Risorse utili:

  1. Cercare di rendere i trigger di dpkg più utili e meno dolorosi
  2. dpkg si innesca, il documento how-to perso

Perché è così lentamente ?!
Antonio Petricca,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.