Apakah ada cara untuk melihat apa yang sebenarnya "pemicu pemrosesan" tidak berdasarkan per paket?

15

Seperti yang saya pahami, " Pemicu pemicu untuk <nama paket> " yang biasa melakukan beberapa tugas khusus paket dan sistem seperti menambahkan item ke menu peluncuran atau memperbarui file konfigurasi. Apakah ada cara aktual untuk melihat apa yang sebenarnya dilakukan atau diubah selama langkah ini? Di mana orang dapat menemukan perilaku langkah yang tepat?

zxcdw
sumber

Jawaban:

16

Memang ada, tetapi itu membutuhkan penggalian melalui beberapa skrip bash untuk paket yang dipicu.

  • Misalkan dpkgoutputnya seperti:

    Bersiap untuk mengganti zim 0,52-1 (menggunakan ... / arsip / zim_0.52-1_all.deb) ...
    Membuka kemasan zim ...
    Memproses pemicu untuk info-mime bersama ...
    Memproses pemicu untuk menu ...
  • Secara internal, yang dpkgdilakukan adalah memanggil postinstskrip untuk setiap paket ini dengan triggeredopsi baris perintah, dan nol atau lebih opsi pemicu.

  • Jadi, Anda hanya terbuka /var/lib/dpkg/info/PACKAGE.postinst(itu script bash), dan hanya mencari apa yang terjadi ketika $1adalahtriggered

Contoh: man-dbpemicu

Salah satu "Pemicu pemicu" paling umum yang akan Anda lihat adalah man-db, kapan pun paket yang diinstal memiliki halaman manual .

Jika Anda membuka /var/lib/dpkg/info/man-db.postinst, Anda akan menemukan bagian ini:

jika ["$ 1" = dipicu]; kemudian
    # Kami tidak mencetak pesan status di sini, seperti yang sudah dikatakan dpkg
    # "Memproses pemicu untuk man-db ...".
    run_mandb -pq
    keluar 0
fi

Jadi, Anda dapat melihat bahwa Processing triggers for man-db ...hanya menghasilkan run_mandbfungsi (juga ditemukan dalam postinstskrip) dijalankan dengan -pqopsi.

Sumber Daya Bermanfaat:

  1. Mencoba membuat pemicu dpkg lebih bermanfaat dan tidak terlalu menyakitkan
  2. dpkg memicu, bagaimana cara mendokumentasikan yang hilang
ish
sumber
Kenapa lambat sekali ?!
Antonio Petricca