Чи є спосіб побачити, що саме робить "тригери обробки" на основі пакета?


15

Як я зрозумів, звичайні " тригери обробки " для <ім'я пакета> "виконують деякі завдання, характерні для пакета та системи, такі як додавання елементів до меню запуску або оновлення файла конфігурації. Чи існує фактичний спосіб побачити, що саме робиться чи змінюється під час цього кроку? Де можна знайти точну поведінку кроку?

Відповіді:


16

Існує, але для запуску пакунків потрібно викопати деякі сценарії bash для запуску пакунків.

  • Припустимо, dpkgвисновок виглядає так:

    Підготовка до заміни zim 0,52-1 (за допомогою ... / archives / zim_0.52-1_all.deb) ...
    Розпакування заміни зім ...
    Обробка тригерів для спільної інформації mime ...
    Обробка тригерів для меню ...
  • Внутрішньо, що dpkgвикликає postinstскрипт для кожного з цих пакетів з triggeredопцією командного рядка та нульовими або більше параметрами тригера.

  • Отже, ви просто відкриваєте /var/lib/dpkg/info/PACKAGE.postinst(це баш сценарій) і просто шукаєте, що відбувається, коли $1єtriggered

Приклад: man-dbтригери

Один з найпоширеніших "тригерів обробки", який ви побачите, - це man-dbкожен раз, коли встановлений пакунок має довідкову сторінку.

Якщо ви відкриєте /var/lib/dpkg/info/man-db.postinst, ви знайдете цей розділ:

якщо ["$ 1" = спрацьовано]; потім
    # Ми не друкуємо тут повідомлення про стан, як уже було сказано dpkg
    # "Обробка тригерів для man-db ...".
    run_mandb -pq
    вихід 0
фі

Таким чином, ви бачите, що це Processing triggers for man-db ...просто призводить до того, що run_mandbфункція (яка також зустрічається в postinstсценарії) запускається з -pqопцією.

Корисні ресурси:

  1. Намагаючись зробити тригери dpkg більш корисними та менш болючими
  2. спрацьовує dpkg, втрачений документ про те

Чому так повільно ?!
Антоніо Петріка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.