debian の制御ファイルに現在インストールされている debian ファイルの md5sum を表示する機能を追加したい: preinst、debian ファイルのフルパスを取得する方法はありますか?
質問する
755 次
1 に答える
2
難しいでしょう。
dpkg は、現在インストールされているファイルの名前を、環境変数またはその他の方法でメンテナ スクリプトにエクスポートしません。また、メンテナ スクリプトが実行されるまでには、元の .deb ファイルへのハンドルすらありません。そのため、/proc/$pid
検査も機能しません。Dir::Cache
apt のキャッシュ ディレクトリ ( config item 、通常は/var/cache/apt/
) で、名前が次のようなファイルを探すことで、「時々」機能するものを作成できます。
${DPKG_MAINTSCRIPT_PACKAGE}_packageversion_${DPKG_MAINTSCRIPT_ARCH}.deb
..ビルド時に現在のパッケージ バージョンをハードコーディングし、任意のエポック フィールドを省略した場合、dpkg は preinst でもそれを提供しません。APT を使用してインストールしている場合、これはほとんどの場合うまくいきます。dpkg -i
または何か他のものを使用すると、運が悪くなります。
より良い答えはおそらく、なぜそれをしたいのですか?あなたの問題が何であれ、おそらく解決するためのより良い方法があります。
于 2013-03-29T16:55:23.420 に答える