パッケージごとに「処理トリガー」が正確に何を行うかを確認する方法はありますか?


15

私が理解したように、通常の「<packagename>のトリガーの処理」は、起動メニューへのアイテムの追加や構成ファイルの更新など、パッケージおよびシステム固有のタスクを実行します。このステップで何が行われているか、または変更されているかを実際に確認する方法はありますか?ステップの正確な動作はどこで見つけることができますか?

回答:


16

ありますが、トリガーされるパッケージのbashスクリプトを掘り下げる必要があります。

  • 仮定dpkg:のような出力ルックスを

    zim 0.52-1の交換準備(... / archives / zim_0.52-1_all.debを使用)...
    交換用zimの開梱...
    shared-mime-infoのトリガーの処理...
    メニューのトリガーの処理...
  • 内部的には、これらの各パッケージのスクリプトを、コマンドラインオプションと0個以上のトリガーオプションでdpkg呼び出します。postinsttriggered

  • だから、あなたは、単にオープン/var/lib/dpkg/info/PACKAGE.postinst(これはbashスクリプトだ)、そして単純ときに何が起こるかを探し$1ていますtriggered

例:man-dbトリガー

表示される最も一般的な「処理トリガー」の1つは、man-dbインストールされているパッケージにmanページがある場合は常にです。

を開くと/var/lib/dpkg/info/man-db.postinst、次のセクションが見つかります。

if ["$ 1" = Trigged]; それから
    #dpkgがすでに言ったように、ここではステータスメッセージを出力しません
    #「man-dbのトリガーを処理しています...」。
    run_mandb -pq
    出口0
fi

そのため、オプションで実行される関数(スクリプトにもあります)がProcessing triggers for man-db ...単純に結果として現れることがわかります。run_mandbpostinst-pq

役立つリソース:

  1. dpkgトリガーをより便利で苦痛の少ないものにしようとする
  2. dpkgトリガー、失われたハウツー文書

なぜこんなに遅いのか!
アントニオペトリカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.