'Раскаяние покупателя' с Кв.

Этим утром я установил некоторые обновления, которые спросили меня, если я хотел заменить конфигурационные файлы:

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

Я сохранил свою текущую конфигурацию, но после этого, я начал задаваться вопросом:

Существует ли способ видеть то, на что новый файл конфигурации был бы похож после факта?

7
задан 21 December 2016 в 07:58

3 ответа

Я не проверял это, но логика подсказывает, что вы можете просмотреть файл, содержащийся в пакете, который обновлялся. Я предполагаю, что пакет 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

[ 1118] man diff

5
ответ дан 23 November 2019 в 06:28

Я принимаю Старший Фанат ответ, потому что он работает и, кажется, является самым обычно применимым, не будучи слишком трудоемким. ответ Waltinator кажется мне, что работал бы, но я - подозрительная переустановка.

Однако я действительно придумывал 2 дополнительных способа решить эту проблему.

  1. у меня есть клон моего сервера, работающего в Virtualbox VM. Я взял снимок, применил обновление (выбирающий версии специалиста по обслуживанию пакета), скопировал те версии прочь в общий диск, затем удалил снимок и сделал обновление за реалы.

    Оборотная сторона: обычно я делаю обновление в виртуальной машине сначала перед реальной машиной, таким образом, я должен был бы знать для взятия снимка сначала. Возможно, это - хорошая практика прежде, чем применить какое-либо обновление apache2? Я должен буду думать об этом.

  2. Это - самый легкий ответ всех, но я не знаю, обычно ли это применимо. Я использовал aptitude и обновлял apache2, и в /etc/apache2/ папка, я нашел копии файлов конфигурации специалиста по обслуживанию пакета, которые я отклонил! Их назвали apache2.conf.dkpg-dist и envvars.dpkg-dist! Насколько прохладный это?

Оборотная сторона: Я не знаю, происходит ли это только с aptitude and\or apache2, это не может быть обычно применимо.

3
ответ дан 23 November 2019 в 06:28

Вы могли воссоздать условие и выбрать по-другому.

Первый, скопируйте /etc/apache2/envvars где-нибудь безопасный, таким образом, в худшем случае можно восстановить его.

dpkg -S /etc/apache2/envvars говорит нам, который /etc/apache2/envvars часть apache2 пакет, таким образом, можно переустановить его через:

sudo apt-get install --reinstall apache2
1
ответ дан 23 November 2019 в 06:28

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

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