Обновление ставит новую версию поверх старой. Вопрос появляется, когда настройку поменяли и ты, и авторы пакета.
Новая версия ставится той же командой: sudo dpkg -i с архивом новой версии или sudo apt upgrade из репозиториев. dpkg распаковывает новые файлы поверх старых и снова проверяет зависимости. Требование вида (= 2.0-1) новая версия выполнит, только если вместе с ней обновится и пакет, от которого она зависит.
С conffile dpkg поступает так. Не менял файл ты — dpkg ставит новую версию молча. Не менялся файл в пакете — dpkg молча оставляет твою. Изменились обе — dpkg останавливается и спрашивает:
D показывает разницу двух версий. Ответ N оставляет твою, а новую dpkg кладёт рядом, в lab-pkg-report.conf.dpkg-dist. Ответ Y ставит новую, а твоя сохраняется как .dpkg-old.
dpkg спросил о /etc/lab-pkg-report.conf, и ты ответил N. Где после обновления окажется настройка из новой версии пакета?
-
N— «оставить мою»: в/etc/lab-pkg-report.confостаётся твоя правка. Новую версию ставит ответY. -
dpkg ничего не выбрасывает: отвергнутую версию он кладёт рядом.
ls /etc/lab-pkg-report.conf*покажет второй файл.
Ответ N оставляет твою настройку на месте, а версию из пакета dpkg кладёт в .dpkg-dist. Сравнить их можно diff /etc/lab-pkg-report.conf /etc/lab-pkg-report.conf.dpkg-dist.
Главное в шаге
- Обновление — установка новой версии поверх старой, с той же проверкой зависимостей.
- Вопрос о conffile бывает, только когда изменились и твой файл, и файл в пакете.
-
Отвергнутая версия настройки остаётся рядом:
.dpkg-distили.dpkg-old.