Para publicar pacotes RPM de várias versões diferentes de alguns softwares, estou procurando uma maneira de especificar "números" de versões considerados "atualizações" e incluir a diferenciação de várias versões de pré-lançamento, como (em ordem ): "2.4.0 alfa 1", "2.4.0 alfa 2", "2.4.0 alfa 3", "2.4.0 beta 1", "2.4.0 beta 2", "candidato à versão 2.4.0", "2.4.0 final", "2.4.1", "2.4.2" etc.
O principal problema que tenho com isso é que o RPM considera que "2.4.0" vem antes de "2.4.0.alpha1", então não posso simplesmente adicionar o sufixo no final do número da versão final.
Eu poderia tentar "2.4.0.alpha1", "2.4.0.beta1", "2.4.0.final", que funcionaria, exceto o "candidato à liberação" que seria considerado posterior a "2.4.0.final "
Uma alternativa que considerei é usar a seção "epoch:" do número da versão do RPM (o prefixo epoch: é considerado antes do número da versão principal, para que "1: 2.4.0" seja realmente anterior a "2: 1.0.0") . Ao colocar um registro de data e hora no campo epoch:, todas as versões são ordenadas conforme o esperado pelo RPM, porque suas versões parecem aumentar com o tempo. No entanto, isso falha quando novas versões são feitas em várias versões principais ao mesmo tempo (por exemplo, o 2.3.2 é lançado após a 2.4.0, mas sua versão para o RPM é "20121003: 2.3.2" e "20120928: 2.4. 0 "e os sistemas no 2.3.2 não podem ser" atualizados "para o 2.4.0, porque o rpm o vê como uma versão mais antiga). Nesse caso, o yum / zypper / etc se recusa a atualizar para a 2.4.0, daí o meu problema.
Quais números de versão posso usar para fazer isso e verifique se o RPM sempre considera os números de versão em ordem. Ou, se não for o número da versão, outro mecanismo no pacote RPM?
Nota 1: Gostaria de manter o campo "Release:" do arquivo de especificações para sua finalidade original (várias versões de pacotes, incluindo alterações de pacotes, para a mesma versão do software empacotado).
Nota 2: Isso deve funcionar nas versões atuais de produção de grandes distribuições, como RHEL / CentOS 6 e SLES 11. Mas estou interessado em soluções que também não o fazem, desde que não envolvam a recompilação de rpm!
Nota 3: Em sistemas do tipo Debian, o dpkg usa um componente especial no número da versão, que é o caractere "~" (til). Isso faz com que o dpkg conte o sufixo como ordem "negativa", de modo que "2.4.0 ~ qualquer coisa" venha antes de "2.4.0". Em seguida, a ordem normal se aplica após o "~", então "2.4.0 ~ alpha1" vem antes de "2.4.0 ~ beta1" porque "alpha" vem antes de "beta" em ordem alfabética. Eu não estou necessariamente procurando usar o mesmo esquema para pacotes RPM (tenho certeza de que não existe esse equivalente), então isso é apenas para sua informação.