6

Я создавал RPMS (используя CPake CMake), который устанавливает все в /opt , а затем скрипт postinstall копирует файлы определения сервиса в /etc/systemd/system .

Я поиграл с запуском и остановкой служб также в сценариях RPM postinstall и preuninstall, но это не очень хорошая идея, потому что yum запустит сценарий postinstall перед сценарием preuninstall, если выполнит обновление, и это означает, что если вы попытаетесь обновить службу, то в конечном итоге она не будет работать. Кажется, даже включение / отключение имеет ту же проблему.

Итак, у меня есть два вопроса

  1. Это хорошая идея для установки непосредственно в /etc/systemd , или после установки нужно скопировать из /opt в /etc/systemd? После cp и systemctl daemon-reload происходит "правильный" способ установки служебного файла?

  2. Есть ли чистый способ starting/stopping/enable/disable служб из RPM, или это лучше оставить вне RPM?

Связанный вопрос (без ответов) для Debian:

Предпочтительный / Идиоматический метод для включения systemd.service из установки пакета Debian

1 ответ1

3

Смотрите:https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd

В скриптлетах вы можете использовать переменную $ 1 для определения, является ли это обновление или чистая установка или обновление или удаление пакета. Значение переменной определяется здесь:https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Syntax

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .