私はこのプロジェクトにインスピレーションを受けました:
さて、dpkg が /usr/share/applications ディレクトリに何か新しいものを配置した後、同様のことを実行したいのですが、スクリプトはどこを指し示し、どのパラメーターを渡す必要がありますか?
答え1
/etc/apt/apt.conf.d/
スクリプトがパラメータを受け取らない場合は、たとえば、92local
次の内容のファイルを に追加します(数字は、そのディレクトリ内のスクリプトの実行順序を強制するために使用されます)。
DPkg::Post-Invoke { "/path-to/my-script"; };
実行可能にすることを忘れないでください。
現時点では、スクリプトにパラメータや入力を渡す方法に関する情報は見つかりません。
役に立つかもしれないのですが、apt
コマンド ラインで実行しているときは、環境変数でコマンド ラインを見つける必要がありますSUDO_COMMAND
。
答え2
APT コマンドのコマンドラインを実行する方法を見つけました:
/etc/apt/apt.conf.d/90my_dpkg_post_invoke
コンテンツを含むファイルを作成する
DPkg::Post-Invoke { "/usr/local/lib/my_dpkg_post_invoke.sh"; }
/usr/local/lib/my_dpkg_post_invoke.sh
コンテンツを含む実行可能ファイルを作成する
#!/bin/bash
APTPID=$( ps -ho ppid "${PPID}" )
APTPID="${APTPID## }" # trim leading spaces
APTCMD=$( ps -ho args "${APTPID}" )
APTCMD="${APTCMD## }" # trim leading spaces
echo "#### APT Command: ${APTCMD}"
${APTCMD}
これで、アクションをトリガーする文字列が含まれているかどうかをテストして実行可能ファイルを拡張できるようになりました。