A maneira mais fácil é fornecer um arquivo de origem e permitir que os mantenedores de distribuição criem pacotes para sua própria distribuição.
Você pode facilmente criar um arquivo binário simples ( .tar.gz
) e convertê-lo em .deb
e .rpm
, o que cobrirá a maioria dos usuários do Linux, mas não será tão útil quanto pacote feito. Obtendo o arquivo binário no formato certo é apenas a ponta do iceberg. Fazer um bom pacote requer, entre outros:
- Colocando os arquivos nos diretórios apropriados. Enquanto o FHS tenta unificar a estrutura de diretórios do Linux, ainda há variação entre as distribuições.
- Compilando as versões corretas das bibliotecas. O quão difícil isso é depende se o seu programa depende de bibliotecas cujo ABI evolui rapidamente. Versões diferentes da mesma distribuição podem requerer pacotes diferentes porque elas são fornecidas com diferentes versões de bibliotecas.
- Declarando dependências com os nomes de pacotes corretos.
- Declarações de menu, manipuladores MIME, documentação, scripts de inicialização,…
Geralmente, é mais fácil permitir que alguém familiarizado com cada distribuição faça um pacote. Muitas vezes, você poderá reunir essas contribuições em um único pacote de origem (contendo um debian
directory, um .spec
file for rpm,…) e distribuir archives de origem, permitindo que as pessoas que executam cada distribuição façam um pacote para sua distribuição. A menos que você tenha feito grandes alterações em seu programa, é provável que, uma vez que você tenha uma determinada distribuição funcionando, as versões mais novas funcionem com os mesmos scripts de construção.
Algumas distribuições possuem mecanismos automatizados para construir e distribuir pacotes. Por exemplo, você pode fazer um PPA PPA e tê-lo automaticamente construído contra todas as versões suportadas do Ubuntu, mesmo que você não seja executando o Ubuntu.