В поисках различий, чтобы запутать?

Предположим, какой-то пакет для ...

$ apt-get install foo

.. устанавливает благословенный dpkg conffile /etc/foo.conf (т.е. версия сопровождающего пакета)

Теперь предположим, что после установки пакета /etc/foo.conf изменено, возможно, чтобы добавить линия.

Теперь мы хотели бы получить различие между версией foo.conf сопровождающего пакета и текущей (чтобы увидеть, какие локальные изменения конфигурации были сделаны).

Какой самый простой способ сделать это?

Один из способов - установить пакет в изолированную тюрьму, а затем разнести его в чистую. Есть ли более простой способ?

2
задан 27 January 2013 в 13:33

2 ответа

Вы можете установить etckeeper. Он управляет вашим каталогом /etc с помощью VCS, автоматически фиксируя до и после каждого использования apt.

Или, вы можете извлечь deb: dpkg-deb -x foo.deb foo сбросит его содержимое в каталог foo.

0
ответ дан 27 January 2013 в 13:33

После того, как вы обновите свои пакеты, dpkg сохранит свой новый файл конфигурации с суффиксом .dpkg-new (если вы решили сохранить свои собственные изменения):

diff -u /etc/foo.conf /etc/foo.conf.dpkg-new

Если вы выбрали перезапись своих файлов , она будет переименована и получит суффикс .dpkg-old: diff -u /etc/foo.conf.dpkgold /etc/foo.conf

Как сказал шатун, вы также можете извлечь файл .deb. Сначала вам нужно откуда-нибудь получить файл .deb, а затем вы сможете его извлечь. Если вы ранее не запускали apt-get clean, у вас должен быть файл .deb, уже доступный в /var/cache/apt/archives/, что означает, что вы можете пропустить часть apt-get download и соответственно изменить путь для dpkg-deb -x.

apt-get download foo
dpkg-deb -x foo_<version>_<arch>.deb fs
diff -u fs/etc/foo.conf /etc/foo.conf
0
ответ дан 27 January 2013 в 13:33

Другие вопросы по тегам:

Похожие вопросы: