2

debian の制御ファイルに現在インストールされている debian ファイルの md5sum を表示する機能を追加したい: preinst、debian ファイルのフルパスを取得する方法はありますか?

4

1 に答える 1

2

難しいでしょう。

dpkg は、現在インストールされているファイルの名前を、環境変数またはその他の方法でメンテナ スクリプトにエクスポートしません。また、メンテナ スクリプトが実行されるまでには、元の .deb ファイルへのハンドルすらありません。そのため、/proc/$pid検査も機能しません。Dir::Cacheapt のキャッシュ ディレクトリ ( config item 、通常は/var/cache/apt/) で、名前が次のようなファイルを探すことで、「時々」機能するものを作成できます。

${DPKG_MAINTSCRIPT_PACKAGE}_packageversion_${DPKG_MAINTSCRIPT_ARCH}.deb

..ビルド時に現在のパッケージ バージョンをハードコーディングし、任意のエポック フィールドを省略した場合、dpkg は preinst でもそれを提供しません。APT を使用してインストールしている場合、これはほとんどの場合うまくいきます。dpkg -iまたは何か他のものを使用すると、運が悪くなります。

より良い答えはおそらく、なぜそれをしたいのですか?あなたの問題が何であれ、おそらく解決するためのより良い方法があります。

于 2013-03-29T16:55:23.420 に答える