Этим утром я установил некоторые обновления, которые спросили меня, если я хотел заменить конфигурационные файлы:
Configuration file '/etc/apache2/envvars'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** envvars (Y/I/N/O/D/Z) [default=N] ? N
Я сохранил свою текущую конфигурацию, но после этого, я начал задаваться вопросом:
Существует ли способ видеть то, на что новый файл конфигурации был бы похож после факта?
Я не проверял это, но логика подсказывает, что вы можете просмотреть файл, содержащийся в пакете, который обновлялся. Я предполагаю, что пакет apache2 для вашего текущего дистрибутива выбирается из этой страницы (вы можете подтвердить это, проверив свой dpkg.log)
Файлы DEB - это архивы, которые всегда содержат три файла debian-binary, control.tar.gz и data.tar.gz. Мы можем использовать команды dpkg-deb и tar для извлечения и просмотра файлов из пакета deb, как показано ниже.
Просто извлеките файлы из пакета во временную папку. В качестве примера: dpkg-deb -x packagename.deb /tmp
Корректировка имени пакета и целевого расположения по мере необходимости.
Извлекая содержимое пакета, затем извлеките содержимое включенного компонента data.tar.gz с помощью tar -xvzf data.tar.gz
Найдите включенный файл envvars (вы можете использовать find ./ -name envvars
из местоположения, которое вы распаковал файл data.tar.gz.
Найдя файл, перейдите в этот каталог и используйте diff envvars /etc/apache2/envvars
, чтобы отобразить различия между вашим текущим файлом конфигурации и предлагаемым. Источники:
http://www.thegeekstuff.com/2010/04/view-and-extract-packages/
man dpkg
man dpkg-deb
man diff
Я принимаю Старший Фанат ответ, потому что он работает и, кажется, является самым обычно применимым, не будучи слишком трудоемким. ответ Waltinator кажется мне, что работал бы, но я - подозрительная переустановка.
Однако я действительно придумывал 2 дополнительных способа решить эту проблему.
у меня есть клон моего сервера, работающего в Virtualbox VM. Я взял снимок, применил обновление (выбирающий версии специалиста по обслуживанию пакета), скопировал те версии прочь в общий диск, затем удалил снимок и сделал обновление за реалы.
Оборотная сторона: обычно я делаю обновление в виртуальной машине сначала перед реальной машиной, таким образом, я должен был бы знать для взятия снимка сначала. Возможно, это - хорошая практика прежде, чем применить какое-либо обновление apache2? Я должен буду думать об этом.
Это - самый легкий ответ всех, но я не знаю, обычно ли это применимо. Я использовал aptitude
и обновлял apache2
, и в /etc/apache2/
папка, я нашел копии файлов конфигурации специалиста по обслуживанию пакета, которые я отклонил! Их назвали apache2.conf.dkpg-dist
и envvars.dpkg-dist
! Насколько прохладный это?
Оборотная сторона: Я не знаю, происходит ли это только с aptitude
and\or apache2
, это не может быть обычно применимо.
Вы могли воссоздать условие и выбрать по-другому.
Первый, скопируйте /etc/apache2/envvars
где-нибудь безопасный, таким образом, в худшем случае можно восстановить его.
dpkg -S /etc/apache2/envvars
говорит нам, который /etc/apache2/envvars
часть apache2
пакет, таким образом, можно переустановить его через:
sudo apt-get install --reinstall apache2