Afin de publier des packages RPM de plusieurs versions différentes de certains logiciels, je cherche un moyen de spécifier des "numéros" de version qui sont considérés comme des "mises à niveau", et d'inclure la différenciation de plusieurs versions préliminaires, telles que (dans l'ordre ): "2.4.0 alpha 1", "2.4.0 alpha 2", "2.4.0 alpha 3", "2.4.0 beta 1", "2.4.0 beta 2", "2.4.0 release candidate", "2.4.0 final", "2.4.1", "2.4.2", etc.
Le principal problème que j'ai avec cela est que RPM considère que "2.4.0" vient plus tôt que "2.4.0.alpha1", donc je ne peux pas simplement ajouter le suffixe à la fin du numéro de version finale.
Je pourrais essayer "2.4.0.alpha1", "2.4.0.beta1", "2.4.0.final", qui fonctionnerait, à l'exception de la "version candidate" qui serait considérée plus tard que "2.4.0.final" ".
Une alternative que j'ai envisagée consiste à utiliser la section "epoch:" du numéro de version de RPM (le préfixe epoch: est considéré avant le numéro de version principal afin que "1: 2.4.0" soit en fait antérieur à "2: 1.0.0") . En plaçant un horodatage dans le champ epoch:, toutes les versions sont ordonnées comme prévu par RPM, car leurs versions semblent incrémenter dans le temps. Cependant, cela échoue lorsque de nouvelles versions sont effectuées sur plusieurs versions principales en même temps (par exemple, 2.3.2 est publié après 2.4.0, mais leur version pour RPM est "20121003: 2.3.2" et "20120928: 2.4. 0 "et les systèmes sur 2.3.2 ne peuvent pas être" mis à niveau "vers 2.4.0, car rpm le voit comme une version plus ancienne). Dans ce cas, yum / zypper / etc refuse de passer à la version 2.4.0, donc mon problème.
Quels numéros de version puis-je utiliser pour y parvenir et assurez-vous que RPM considère toujours les numéros de version comme étant en ordre. Ou si ce n'est pas des numéros de version, un autre mécanisme dans l'emballage RPM?
Remarque 1: je voudrais conserver le champ "Release:" du fichier de spécifications pour son usage d'origine (plusieurs versions de packages, y compris les modifications de package, pour la même version du logiciel packagé).
Remarque 2: cela devrait fonctionner sur les versions de production actuelles des principales distributions, telles que RHEL / CentOS 6 et SLES 11. Mais je suis intéressé par des solutions qui ne le font pas, aussi, tant qu'elles n'impliquent pas de recompiler rpm!
Remarque 3: Sur les systèmes de type Debian, dpkg utilise un composant spécial dans le numéro de version qui est le caractère "~" (tilde). Cela oblige dpkg à compter le suffixe comme un ordre "négatif", de sorte que "2.4.0 ~ rien" viendra avant "2.4.0". Ensuite, l'ordre normal s'applique après le "~", donc "2.4.0 ~ alpha1" précède "2.4.0 ~ beta1" car "alpha" précède alphabétiquement "beta". Je ne cherche pas nécessairement à utiliser le même schéma pour les packages RPM (je suis sûr que cet équivalent n'existe pas), donc c'est juste FYI.