Файл .rpmnew не создан при обновлении пакета?

Файл .rpmnew не создан при обновлении пакета?

В настоящее время я тестирую установку RPM с файлом конфигурации, используя config(noreplace)директиву.

Согласнос помощью конфигурации(noreplace)мой файл спецификаций помечает один файл как файл конфигурации:

%config(noreplace) /opt/lm/dest/conf/db.xml

Я внес изменения на диске в файл для версии 1 и приступил к обновлению до версии 2. Я ожидал, что подробный вывод (при использовании -Uvh) укажет на то, что он создал , но db.xml.rpmnewэтого не произошло, однако внесенные мной изменения на диске остались нетронутыми.

Кто-нибудь знает, почему это может быть так?

Немного справочной информации: я использую один и тот же tar-файл для создания версий 1 и 2, что не должно иметь значения, но я все равно подумал, что стоит об этом упомянуть.

ПРАВКА 1:

Если не ясно, db.xml.rpmnewфайл не был создан.

решение1

То, что вы наблюдаете, — это ожидаемое поведение..rpmnewПакет создается только при выполнении обоих следующих условий:

  1. Файл конфигурации по умолчанию в новом пакете RPM отличается от файла конфигурации, который изначально был включен в текущую/предыдущую версию пакета RPM. (Изменения в значениях по умолчанию были внесены сопровождающим пакета.)
  2. Фактический файл конфигурации на диске был изменен по сравнению с файлом по умолчанию, который был включен в текущую/предыдущую версию пакета. (Изменения по сравнению с файлами по умолчанию были внесены администратором.)

Согласно журналу изменений:

коммит e64bf5b93ab689e6031fce4489e4ae38ebaebef1
Автор: Пану Матилайнен
Дата: Вт Авг 28 09:04:09 2007 +0300

Избегайте .rpmnew, если файл в пакете не изменился (rhbz#194246)

Текущее поведение %config(noreplace) создает .rpmnewfile, если тип текущего файла был изменен на тот, который был изначально установлен.

Патч изменяет это поведение, так что когда старый и новый (в БД и в пакете) идентичны -> не изменены, функция возвращает FA_SKIP -> она ничего не затирает, она просто пропускает установку файла из пакета. Этот патч обрабатывает также противоположный случай, когда старый и новый пакеты содержат %configсимволическую ссылку, а у нас есть обычный файл на диске.

Patch from Tomas Mraz.

Связанный контент