Estou pensando em escrever um RPM que contenha um ambiente virtual Python. Um ambiente virtual do Python contém uma cópia do executável do Python (que é um shell fino em torno da biblioteca compartilhada do Python). Isso significa que, se o Python for atualizado, o executável do Python dentro desse ambiente virtual também deverá ser atualizado.
É possível que um RPM tenha um script que seja executado toda vez que uma dependência for atualizada? Percebi que akmod
parece saber recompilar os módulos do kernel toda vez que você atualiza o kernel. Ele faz isso conectando o RPM ou por algum tipo de script 'na inicialização' que verifica qual kernel está sendo executado?
Nos sistemas RHEL e Fedora, o pacote do kernel é especial porque existe um
/usr/lib/kernel/install.d
e/etc/kernel/install.d
que possui scripts para execução durante as instalações do kernel/usr/lib/kernel/postinst.d
e/etc/kernel/postinst.d
para após a instalação. Outros pacotes, como akmods ou dkms, podem soltar scripts no diretório apropriado para invocar scripts relacionados às instalações do kernel. Isso tudo é tratado pelonew-kernel-pkg
comando, eu acredito.Se você estiver usando o RPM 4 ou superior, há gatilhos que você pode definir na especificação do RPM que acionam a atualização de um pacote específico. Confira a documentação em
/usr/share/doc/rpm/triggers
.