#linux #build #rpm
Собираю rpm-пакет. Имеется некоторый файл, содержимое которого одна строка с символов '1'. В spec-файле имею следующие настройки сборки %files %defattr(-, root, root) %config(noreplace) /path/file.config %preun echo "222" >> /path/file.config То есть данный файл помечен как файл конфигурации. При удалении пакета я его модифицирую, записываю туда некую строчку(в моем случае строку с 3-мя символа '2') Собираю пакет, устанавливаю пакет на дистрибутив OpenSuse 13.2. Делаю установку пакета... После установки вижу, создался файл /path/file.config со строкой с символом '1'(исходное содержимое файла). Меняю этот файл(чтобы он сохранился при удалении пакета), заменяю символ '1' на символ '3'. Теперь пробую удалить мой установленный пакет. При удалении пакета я прописал, чтобы у меня добавилась новая строка в этот файл "222". После удаления пакета я ожидаю увидеть сохраненный файл, содержащий 2 строки 3 222 В итоге, я вижу файл с одной строкой(только последние изменения, сделанные до удаления пакета) 3 То есть все изменения, которые я сделал в postun-скрипте для этого файла, они были утеряны. Почему так происходит? Установку делаю с помощью команды rpm -i, удаление пакета с помощью rpm -e. Можно ли сделать так, чтобы конфигурационный файл менялся в postun-скрипте, и чтобы rpm учитывала эти изменения при сохранении конфигурационного файла после удаления пакета?
Ответы
Ответ 1
попробуйте проверить, выполняется ли вообще скрипт из секции %preun, добавив в него, например, такую строку: %preun ... touch /tmp/somefile если файл /tmp/somefile не появится после удаления пакета, то стоит попробовать перенести секцию %preun выше секции %files: ... %preun ... %files ... обновление возможно, подходящим вариантом может быть отказ от управления нужным вам файлом средствами программы rpm. попробуйте вообще убрать его из секции %files, и просто создавать его (при необходимости) из образцового файла где-нибудь в секции, например, %post. этот вариант мне кажется более простым и менее затратным, чем попытки выяснить точную последовательность действий программы rpm при работе с файлами, объявленными как %config. что вы при этом «потеряете»? насколько я понимаю, лишь возможность проверить принадлежность файла с помощью rpm -qf /ваш/файл.
Комментариев нет:
Отправить комментарий