debian,diff,配置默认值

debian,diff,配置默认值

我想知道是否可以获取已安装的 Debian 软件包的原始配置文件与当前配置文件之间的差异。

如果找到显示修改后的配置文件的答案,但我找不到生成差异的方法。

命令是

dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}' | sort | less

答案1

我用etckeeper为此目的。它不会帮助您回溯,但从现在开始您将能够看到对 /etc 的更改。它由 Joey Hess 编写,是一款很棒的工具。Joey 的描述:

etckeeper 是一组工具,用于将 /etc 存储在 git、mercurial、darcs 或 bzr 存储库中。它与 apt(以及其他软件包管理器,包括 yum 和 pacman-g2)挂钩,以在软件包升级期间自动提交对 /etc 所做的更改。它跟踪修订控制系统通常不支持但对 /etc 很重要的文件元数据,例如 /etc/shadow 的权限。它非常模块化且可配置,如果您了解使用修订控制的基础知识,它也很容易使用。

由于它基于 git,因此您可以添加远程服务器并轻松比较不同机器的配置文件,而无需通过 ssh 进入另一台机器。它易于安装,apt-get源代码可在此处获取:

http://git.kitenet.net/?p=etckeeper.git

答案2

我编写了一个可以进行差异计算的 bash 脚本(为此,它会下载所有必需的包并将它们提取到临时目录中)。

  • 它使用 debsums 而不是 dpkg-query,因为 dpkg-query 对我来说会产生误报。
  • 它也无法区分安装过程中由脚本生成的文件(/etc/default 中的文件似乎如此),这需要一些 chrooting 或类似的东西......

享受:

https://gist.github.com/pallinger/cdb70d73cb922baa43d2

附言:使用 etckeeper 或者类似的东西确实更好,但如果你已经安装了系统,那么之前的修改就太晚了。

相关内容