Назад | Перейти на главную страницу

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

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

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

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

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

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

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

РЕДАКТИРОВАТЬ 1:

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

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

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

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

совершить e64bf5b93ab689e6031fce4489e4ae38ebaebef1
Автор: Пану Матилайнен
Дата: 28 августа, вторник, 09:04:09 2007 г. +0300

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

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

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

Patch from Tomas Mraz.