手动编译的 .deb 中的 postinst 脚本报告未找到

手动编译的 .deb 中的 postinst 脚本报告未找到

我有一个关于 dpkg/debian-izing 的快速问题。我正在尝试创建一个.deb(手动创建 - 主要用于学习目的),并且我已经arcontrol.tar.gzdata.tar.gz文件整理了一个 -chive debian-binary

此手动版本.deb适用于常规安装、清除等。但是,当我--instdir在安装时指定时,dpkg尝试运行脚本时会报告“文件未找到”错误postinst。顺便说一句,这不是prerm脚本的问题(它运行良好)。

跑着dpkg--debug=2000/var/log/dpkg.log没有什么帮助。

对于为什么会发生这种情况,您有什么想法吗?

短暂性脑缺血。


提供更多背景信息并提出另一个问题:我之所以尝试--instdir工作,主要是因为我的软件包内容安装到的顶级目录也是一个挂载点,并且在执行时dpkg -P foodpkg会尝试删除此目录。如果有人可以提出解决方法,那也将满足我的目的(即我不需要--instdir工作)。此外,这个顶级目录不是空的,所以不确定为什么dpkg要尝试去掉它。将.placeholder文件放入其中也无济于事。

答案1

正如这里所列的那样(https://stackoverflow.com/questions/8921626/run-time-installation-directory-of-debian-package-contents) 预打包二进制文件的 deb 包不支持动态目录路径。但您可以在控制文件中指定目录路径(而不是在运行时)。为了轻松制作软件包,您可以使用一些图形工具(例如,此处提到:https://askubuntu.com/questions/8055/graphical-tool-for-creating-deb-packages)。

相关内容