如何制作可重定位的 .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。那么为什么它试图在 中查找 postinst 脚本/var/lib/dpkg/info/

我尝试创建另一个不包含此维护者脚本的包,并使用相同的-i --root=newdir选项安装它,并且不会引发任何错误。

请让我知道如何才能完成这项工作。

答案1

dpkg确实找到了 postinst 脚本/your/root/var/lib/dpkg/info- 它试图运行它。看起来问题是缺少装载机dpkg找到 postinst 脚本,但在尝试执行它时收到“没有这样的文件或目录”错误,因为该脚本的解释程序不存在(例如,它是一个 Python 脚本并且python-minimal未安装)。使用替代 instdir,解释器必须位于 instdir 下(在运行包脚本之前,dpkg chroots 到 instdir)。

如果标记的包未提供解释器Essential,请确保您的包依赖于提供解释器的包。

相关内容