Я новичок в системном администрировании и помогаю администрировать сервер студенческой группы. Мне было интересно, что лучше всего использовать, когда вы обновляете пакеты и в файле конфигурации есть изменения. Я смотрел на различия, а затем обычно просто оставлял старую версию, если не похоже, что есть что-то важное, что нужно добавить, и в противном случае слияние файлов конфигурации вручную с помощью kdiff3, но есть ли лучший способ сделать это?
Кроме того, должен ли я сам делать резервную копию старого файла или dpkg автоматически делает резервную копию? Иногда я замечал файлы .old в некоторых каталогах для старых версий файлов конфигурации.
Эта проблема усложняется тем, что, поскольку я новичок в этой группе, я не знаю, почему некоторые изменения такие, какие они есть, но, если сомневаюсь, я отложил до существующей версии.
Кстати, хотелось бы немного конкретики. Например, когда dpkg предлагает вам целиком Y / N / I / O / D / и т. Д., Что вы делаете? Вы делаете резервную копию старого файла, устанавливаете новый и затем объединяете, или есть лучший способ объединить файлы, когда вы находитесь в этой подсказке ncurses?
это кажется разумным способом сделать это. похоже на то, что я делал около 15 лет (использую debian с 1994 года). у меня всегда работало :)
Я начинаю с основного предположения, что если я модифицировал файл конфигурации, то у меня была для этого веская причина, и мои изменения, вероятно, будут лучше / важнее, чем что-либо в новом файле конфигурации по умолчанию.
Затем я проверяю свою конфигурацию и новую упакованную версию, а также:
полностью игнорировать любые различия, потому что они либо не важны, либо не имеют отношения к моей настройке.
объединить все полезное из новой конфигурации в мою существующую.
если есть много нового и только небольшое количество моих изменений, которые я хочу сохранить, я делаю обратное и объединяю свои изменения в новый файл конфигурации, а затем использую его.
Я не использую для этого никаких специализированных инструментов или инструментов с графическим интерфейсом. я просто использую 'diff -u' и less и vi, а также иногда некоторые стандартные инструменты обработки текста, такие как sed или perl. colordiff тоже хорош, когда вывод diff превышает экран или около того.
Только что заметил этот пост в поисках ответа на мой похожий вопрос.
В конце концов я решил открыть терминал, выполнить трехстороннее слияние с объединением,
meld file.conf file.conf.dpkg-old file.conf.dpkg-new
сохраните результат в file.conf и продолжайте с этим
Хотя я согласен с ответом Крейга Сандерса, я должен добавить одно предостережение: во время многих обновлений (обычно между выпусками - например, Hardy -> Intrepid) apt сообщает файлы конфигурации как изменения, когда я их не менял. Если я уверен, что не менял конфигурационный файл, я просто выброшу старый и сохраню версию сопровождающего пакета.
Да, лучше всего, ИМХО, получить версию сопровождающего и сообщить в ней настроенные значения.
Таким образом, у вас будет самый последний файл конфигурации с обновленными комментариями, закомментированными значениями по умолчанию и т. Д.
Когда у вас возник конфликт в процессе обновления из-за новой версии файла конфигурации, лучше всего сохранить лучшее между нашей версией и версией сопровождающей, запишите файл для проверки, а затем вручную отредактируйте файл, чтобы объединить различия рукой (vimdiff - очень мощный способ, но kdiff тоже хороший выбор :)
Очень важно помнить, что избегать устаревания пользовательских конфигурационных файлов!
Мои 2 цента :)