我有一个关于 dpkg/debian-izing 的快速问题。我正在尝试创建一个.deb
(手动创建 - 主要用于学习目的),并且我已经ar
用control.tar.gz
和data.tar.gz
文件整理了一个 -chive debian-binary
。
此手动版本.deb
适用于常规安装、清除等。但是,当我--instdir
在安装时指定时,dpkg
尝试运行脚本时会报告“文件未找到”错误postinst
。顺便说一句,这不是prerm
脚本的问题(它运行良好)。
跑着dpkg
看--debug=2000
并/var/log/dpkg.log
没有什么帮助。
对于为什么会发生这种情况,您有什么想法吗?
短暂性脑缺血。
提供更多背景信息并提出另一个问题:我之所以尝试--instdir
工作,主要是因为我的软件包内容安装到的顶级目录也是一个挂载点,并且在执行时dpkg -P foo
,dpkg
会尝试删除此目录。如果有人可以提出解决方法,那也将满足我的目的(即我不需要--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)。