如何查看使用 apt-get 安装的配置文件的原始版本?

如何查看使用 apt-get 安装的配置文件的原始版本?

我有一台运行 Ubuntu 的服务器和一个随 Ubuntu 一起安装的程序apt-get install,我想查看未修改的配置文件(例如/etc/foo/foo.cfg),以便我可以将其与当前版本进行比较,以查看做了哪些修改。有没有简单的方法可以做到这一点,也许使用某种 apt 命令?

答案1

据我所知,只有当您仍然拥有原始 .deb 时您才能实现这一点,但大多数情况下,类似的 .deb 就足够了。

我认为这个 superuser.com 链接比我能更彻底地回答这个问题:

https://superuser.com/questions/69045/how-do-i-get-the-default-configuration-from-a-deb-file

答案2

apt-get不保存原版配置文件,您可以重新下载原版包。

作为预防措施,安装etckeeper 安装 etckeeper http://bit.ly/software-small,这是在 中进行版本控制的无缝方式/etc。安装软件包后,编辑/etc/etckeeper/etckeeper.conf以选择您最喜欢的版本控制软件(默认为 Bazaar,您可以使用 Darcs、Git 或 Mercury 代替),然后运行​​。除非您愿意,否则etckeeper init您不必再次与 交互。您可以在进行更改后手动运行,但如果您不这样做,apt 将在每次软件包安装运行之前和之后自动进行提交。使用 VCS 的命令(log、diff、annotate 等)查看更改历史记录并恢复到旧版本。etckeeperetckeeper commit

答案3

我为这个用例编写了一个脚本。该脚本将下载给.deb定包的,并将其 ./etc 内容提取到当前工作目录中:

#!/usr/bin/env bash
set -eu

PACKAGE=${1:?"Package not provided"}
TMPDIR=$(mktemp --directory --tmpdir=/var/tmp "deb-etc-${PACKAGE}.XXXXXXX")
trap "rm -rf ${TMPDIR}" EXIT

pushd "${TMPDIR}"

apt download "${PACKAGE}"
ar -x *.deb

tar -xvf data.tar.xz ./etc/

popd
mv "${TMPDIR}/etc" "etc-${PACKAGE}"

相关内容