{dpkg`如何处理新声明的配置文件?

问题描述

我们有一个专有软件包(称为api_package-1.0),我们已经打包和部署了相当长的一段时间。该文件包含一个文件,该文件是部分配置文件,部分应用程序定义(如果需要,则是uwsgi应用程序的xml文件)。该文件位于/etc/下。尽管其中包含某些人在安装后可能会合理更改的部分,但声明为conffile很久了。

现在,我们已将此软件包迁移到新的打包过程(如果需要,可以从CPack迁移到fpm),将其称为api-package_1.0-1。在新过程中,文件 标记为conffile(正如我所说,可以说这是正确的)。

现在让我感到困扰的是dpkg(或apt)试图在旧软件包上安装新软件包时的行为。运行时:

sudo dpkg --force-confold --force-confdef -i api-package_1.0-1_amd64.deb

我看到来自dpkg的以下消息:

 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
 ==> Keeping old config file as default.

现在我想知道怎么回事?该文件显然尚未修改(校验和匹配)。该文件肯定是旧软件包的一部分。

那么dpkg为什么认为我们自己创建了它?

附录:当然,我们可以从conffile中排除该文件。正如我所说的,这确实是一个边缘事件。但是从我阅读的文档中,我希望它可以正常工作,直到有人真正更改了文件。显然,我对dpkg缺乏了解,因此,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)