O Caminho Certo é construir pacotes (RPMs / Debs) desse software e apenas instalar pacotes. É a única maneira que se integra corretamente ao gerenciador de pacotes e lida com as dependências corretamente. Eu sugiro que você aprenda como os RPMs / Debs são construídos, e então encontre as embalagens existentes daquele software para basear seus pacotes.
Os módulos Python podem ser empacotados e instalados em todo o sistema e geralmente funcionam com virtualenvs (a menos que você esteja usando --no-site-packages
). Se isso é melhor do que instalar diretamente no virtualenv com pip
, é menos claro. Os pacotes são mais pesados, mas as instalações virtualenv tendem a ser menos repetíveis, porque você pode se surpreender com novas versões.
Para definir a lista de pacotes que compõem seu sistema, sugiro criar um meta-pacote , que é um pacote não contém arquivos, mas tem dependências. Este metapacote dependeria de todos os pacotes necessários (tanto os pacotes que você construiu quanto os pacotes upstream). Instalar um novo sistema é simplesmente um caso de instalar esse metapacote.