用于在升级期间合并 /etc 中的 conf 文件的工具?

pep*_*uan 7 configuration package-management

Gentoo Linux有一套工具来帮助在升级包时合并conf 文件更改。例如,conf-update工具或dispatch-conf工具。

但是,当我在 Ubuntu 上升级软件包时,我只能选择 (1) 使用新的 conf 文件,(2) 使用旧的 conf 文件,(3) 启动 shell。

Ubuntu 中没有类似于conf-update或 的工具dispatch-conf吗?

更多解释:

假设有一个服务的配置文件是/etc/something.conf. 安装something软件包将提供“默认”配置,并注释所有选项。然后我根据需要修改选项。

然后有一个更新,随着更新,一个新的“默认”配置被安装。某些选项可能会被弃用,可能会添加新选项,并且可能会更正现有选项的描述。

现在这个“默认”配置显然与已经编辑的/etc/something.conf文件冲突。

Gentoo Linux 中,新配置将以唯一名称保存,并打印出一条警告,通知我“已更改/更新配置文件”。然后我运行conf-update这将帮助我对受影响的配置文件执行双向合并。对于每次更改,我可以选择 (1) 保留我的版本,(2) 使用包的版本,或 (3) 手动编辑。通常我选择 (2) 进行评论更改,(1) 保留我的特定更改,以及 (3) 如果我与默认值有很大差异。

如果可能的话,我希望在 Ubuntu 中有相同的控制/交互。

abc*_*234 3

通过 升级时apt-get,通常会提示如何处理配置文件(安装新版本、保留旧版本等)。

如果我们选择保留当前版本,新的配置文件将以扩展名(.dpkg-dist)存储。

可以使用以下命令列出新文件:

find /etc -type f -name "*.dpkg-dist"
Run Code Online (Sandbox Code Playgroud)

要对这些配置文件采取操作,我们可以使用提供的ucf工具。其语法为:

ucf <new-file> <old-file>
Run Code Online (Sandbox Code Playgroud)

例如,

ucf /etc/sysctl.conf.dpkg-dist /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

也可以看看,

https://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-management-by-dpkg/