Eu gostaria de construir e empacotar um programa Go específico. As versões empacotadas do referido programa fornecidas pelo Ubuntu 18.04 e Debian 9.5 (na verdade, PVE 5.2) são bastante antigas, em comparação com o que eu poderia obter do upstream.
Acertar as dependências para minha compilação não é um problema, nem construir um pacote Debian (estive lá, fiz isso).
O que eu preciso saber é como posso atribuir uma versão ao meu pacote - que não será liberada para mais ninguém - de forma que, se o mantenedor do pacote lançar uma versão mais recente do que o meu pacote, ela será instalada e substituirá minha próprio pacote (uma dessas situações pode ser a do Ubuntu do-release-upgrade
).
Existe alguma maneira de "marcar" um pacote dessa maneira sem quebrar as comparações internas de versão ( dpkg --compare-versions
)?
Eu sei que os backports normalmente têm bpo
no nome do pacote (ou essa é a versão?), mas seria difícil encontrar uma lista abrangente de todas as "tags" semelhantes e então eu estava pensando que talvez já exista um método para conseguir isso e evitar confrontos. Portanto, o objetivo principal é jogar pelas regras, ao mesmo tempo em que consigo a versão mais recente que posso obter.
Como você está empacotando novas versões upstream, eu recomendaria uma versão do formulário
onde 1.0 é a versão upstream. A ideia aqui é a seguinte:
0ubuntu
aqui);bpo
backports,deb
para atualizações estáveis do Debian...);Se você precisar fornecer um pacote mais recente com apenas correções de pacote, você aumentará o +1. Se você empacotar uma versão upstream mais recente, você aumenta a versão upstream conforme apropriado e começa do +1 novamente.
Se o mesmo upstream, ou um mais recente, acabar empacotado “oficialmente”, será um candidato de atualização válido da sua versão local: se for um pacote Ubuntu, 1.0-0ubuntu... será classificado após 1.0-0~, e se for um pacote Debian, 1.0-1 classificará após 1.0-0.