シンボリックリンクを生成するためのpostinstスクリプトを含むDebianパッケージがあります。.deb
パッケージをインストールしようとすると--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
.NETでpostinstスクリプトを見つけようとしています/var/lib/dpkg/info
。私が理解できないのは、dpkg
マニュアルページによると using オプションも--root
。それでは、なぜpostinstスクリプトを見つけようとしているのでしょうか?admindir
newdir/var/lib/dpkg
/var/lib/dpkg/info/
-i --root=newdir
この管理者スクリプトなしで別のパッケージを作成し、同じオプションを使用してインストールしてみましたが、エラーは発生しませんでした。
これを行う方法を教えてください。
答え1
dpkg
postinstスクリプトが実際に見つかりました/your/root/var/lib/dpkg/info
。実行を試みます。問題は次のとおりです。ローダーがありません:dpkg
postinstスクリプトが見つかりましたが、スクリプトのインタプリタが存在しないために実行しようとすると、「ファイルやディレクトリがありません」というエラーが表示されます(たとえば、Pythonスクリプトでインストールされてpython-minimal
いません)。 instdirの代替を使用するには、インタプリタがinstdirの下にある必要があります(dpkgはパッケージスクリプトを実行する前にinstdirにルートを変更します)。
タグ付きパッケージがインタプリタを提供していない場合は、パッケージがインタプリタをEssential
提供するパッケージに依存していることを確認してください。