Veja: link
Nos scriptlets, você pode usar a variável $ 1 para detectar se é atualização ou instalação limpa ou atualização ou remoção do pacote. O valor da variável é definido aqui: link
Eu tenho criado RPMS (usando o CPack do CMake), que instala tudo em /opt , e o script postinstall copia os arquivos de definição de serviço para /etc/systemd/system .
Brinquei com iniciar e parar os serviços também nos scripts de pós-instalação e pré-instalação do RPM, mas isso não parece ser uma boa ideia, porque yum executará o script postinstall antes do script de pré-instalação se fazendo uma atualização, e isso significa que, se você tentar atualizar um serviço, acabará com o serviço não sendo executado de qualquer maneira. Até ativar / desativar parece ter o mesmo problema.
Então as duas perguntas que eu tenho
É uma boa ideia instalar diretamente em /etc/systemd ou uma cópia de pós-instalação de /opt para /etc/systemd ? cp é seguido por systemctl daemon-reload a maneira "correta" de instalar o arquivo de serviço?
Existe uma maneira limpa de starting/stopping/enable/disable serviços de um RPM, ou é melhor deixar de fora do RPM?
Pergunta relacionada (sem respostas) para o Debian: