建立一个预配置的Debian软件包



我正在尝试构建一个debian软件包,该软件包会自动配置我的所有机器以使用相同的配置文件和设置。

例如,我正在尝试设置anter/etc/default/hostapd之类的内容。我目前正在通过使用DH_INSTALL将文件复制到/eetc/default/hostapd,并具有我希望它具有的配置。

这会导致错误:

trying to overwrite '/etc/default/hostapd', which is also in package hostapd

创建一个覆盖设置(例如/etc/default/hostapd)的Debian软件包的正确方法是什么?

错误的原因是因为将文件写入系统的任何软件包都标记为其所有者。当两个软件包拥有同一文件时,DEB机制不喜欢它。

您的最佳选择是使用DPKG-Divert,以将另一个软件包的文件重命名为其他名称。在您的第一个脚本中,列出以下命令(假设您的软件包被称为 my_package

dpkg-divert -divert/etc/default/hostapd.saved。/pre>

在您的posttrm脚本中,您需要放置对面命令(未经测试,rtfm正确获取精确的语法):

 dpkg-divert -divert/etc/default/hostapd.saved。/pre>

至少在过去,有一个简单的(尽管更安全)的选项可以在Debian控制文件中放置" conflile"字段。这告诉系统,此软件包安装了覆盖另一个软件包文件的文件。但是,我不确定我是否会推荐这种方法,因为它可能会在卸载时会破坏东西。

最新更新