我有一个自定义 Debian 软件包,它创建了一个触摸屏校准文件,并将部署用于自动更新。如果用户更改了校准文件,我想保留它,因此我的新版本软件包已将此文件声明为“conffile”。
问题是,升级到我的新版本的软件包后,会出现一个“conffile”对话框
Configuration file `/etc/penmount/penmount.dat'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** bash.bashrc (Y/I/N/O/D/Z) [default=N] ?
我可以通过创建包含以下内容的 /etc/apt/apt.conf/local 文件来自动回答这个问题:
Dpkg::Options {
"--force-confdef";
"--force-confold";
}
我的方法是创建这个本地包并将其与另一个包一起安装,然后使用 Pre-Depends 在使用 conffile 升级包之前安装这个包。
但是,当我执行 dist-upgrade 时,两个包都安装好了,但上面的对话框会暂停安装。如果我先安装设置 Dpkg 选项的包,然后再安装我的“conffile”包,问题就会自动处理。
如何将现有的配置文件标记为conffile并一次性自动更新?