如何製作包含維護者腳本的可重定位 .deb 套件?

如何製作包含維護者腳本的可重定位 .deb 套件?

我有一個 Debian 軟體包,其中包含用於創建符號連結的 postinst 腳本。當我嘗試安裝.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正在嘗試在 中找到 postinst 腳本/var/lib/dpkg/info。我無法理解的是,根據dpkg手冊頁,使用--root選項也會更改admindirnewdir/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 chroot 到 instdir)。

如果標記的套件未提供解釋器Essential,請確保您的套件依賴提供解釋器的套件。

相關內容