メンテナー スクリプトを含む再配置可能な .deb パッケージを作成する方法は?

メンテナー スクリプトを含む再配置可能な .deb パッケージを作成する方法は?

.debシンボリックリンクを作成する postinst スクリプトを含む Debian パッケージがあります。パッケージをインストールしようとすると--root(パッケージをインストールする場所を変更したいため)、次のエラーが発生します。

dpkg (subprocess): unable to execute installed post-installation script: No such file or directory
subprocess installed post-installation script returned error exit status 2

dpkgは、 postinst スクリプトを で検索しようとしています/var/lib/dpkg/info。 理解できないのは、dpkgマニュアル ページによると、--rootオプションを使用すると も に変更されるというadmindirことです。newdir/var/lib/dpkgでは、なぜ postinst スクリプトを で検索しようとしているのでしょうか/var/lib/dpkg/info/

このメンテナー スクリプトを含まない別のパッケージを作成し、同じ-i --root=newdirオプションを使用してインストールしてみましたが、エラーは発生しませんでした。

どうすればこれが機能するか教えてください。

答え1

dpkgpostinstスクリプトが見つかりました/your/root/var/lib/dpkg/info— 実行しようとしました。問題はローダーが見つかりません: dpkgpostinst スクリプトが見つかりますが、スクリプトのインタープリタ プログラムが存在しない (たとえば、Python スクリプトでpython-minimalインストールされていない) ため、実行しようとすると「そのようなファイルまたはディレクトリはありません」というエラーが発生します。別の instdir を使用する場合、インタープリタは instdir の下に存在する必要があります (dpkg はパッケージ スクリプトを実行する前に instdir に chroot します)。

インタープリターが のタグが付いたパッケージによって提供されていない場合はEssential、パッケージがインタープリターを提供するパッケージに依存していることを確認してください。

関連情報