Usando as Coleções de Software, você pode ter uma nova versão dos módulos no sistema antigo ou em módulos antigos no novo sistema. Vejo: link
Eu tenho um aplicativo que estou empacotando como um RPM e instalando no CentOS 7. Quando eu instalar o RPM, eu quero que ele instale alguns binários compilados, assim como alguns módulos Python com suas dependências.
Meus módulos Python exigem uma versão mais nova do Python do que a fornecida pelo CentOS, portanto, instalarei os módulos em um altinstall do Python em /usr/local/lib/python2.7/site-packages
. Isso significa que não posso usar RPMs fornecidos pelo CentOS, pois eles são instalados em /usr/lib
. Eu posso instalar facilmente os módulos em /usr/local/lib
usando pip
.
Existe uma maneira de empacotar meu aplicativo de forma que:
/usr/local/lib
quando o aplicativo é instalado. Existe uma convenção para esse tipo de coisa? Ou existem alguns exemplos? Eu não vi nada diretamente relevante em documentação do Fedora Python Packaging .
As opções que eu considerei são:
Agrupe meu aplicativo, módulos Python e todas as dependências do Python em um RPM.
Eu não gosto dessa opção porque não seria capaz de atualizar dependências individuais no sistema cliente sem atualizar meu aplicativo inteiro para uma nova versão.
Crie RPMs individuais para meu aplicativo, meus módulos Python e dependências de terceiros.
Eu não gosto dessa opção porque eu teria que manter os RPMs para cada módulo de terceiros na minha árvore de dependências.
Chame pip
de dentro do meu RPM.
Eu não gosto dessa opção porque o RPM não seria capaz de rastrear as alterações que o pip
faz, e eu não seria capaz de determinar se eu posso remover com segurança módulos Python de terceiros ao remover o RPM. / p>
Usando as Coleções de Software, você pode ter uma nova versão dos módulos no sistema antigo ou em módulos antigos no novo sistema. Vejo: link