我有一台运行 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 等)查看更改历史记录并恢复到旧版本。etckeeper
etckeeper 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}"