Как сделать спецификацию rpm, которая перемещает файлы, ранее отмеченные как %config?

Проблема, которую я пытаюсь решить, следующая:

В более старых версиях моего пакета файлы конфигурации размещались в каталоге /srv/product/.

%config /srv/product/conf1
%config /srv/product/conf2

Но в следующем выпуске я удалил эти файлы конфигурации из пакета. В случае, если пользователь обновляет пакет новой версией (где конфиги больше не включены в rpm), я хочу, чтобы конфиги из предыдущего релиза были перемещены в другой каталог (который является частью pkg) и сохранены там, но все же иметь их как не часть пакета.

Я пытался переместить файлы с помощью скриптов %pre и %post, но это не сработало. Старые конфиги либо перемещаются, а затем перезаписываются их родительским каталогом, либо уже удалены в /srv/product.

Можно ли реализовать это в файле спецификации rpm?


person frizzby    schedule 19.11.2015    source источник


Ответы (1)


Вам нужно сохранить файл в %pre и восстановить его в разделе %post. Как сохранить файл или вообще любое состояние см. https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Saving_state_between_scriptlets

person msuchy    schedule 19.11.2015
comment
%posttrans и %pretrans сделали свою работу в моем конкретном случае. Спасибо. - person frizzby; 08.12.2015