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: