Per pubblicare pacchetti RPM di diverse versioni di alcuni software, sto cercando un modo per specificare i "numeri" di versione che sono considerati "aggiornamenti" e includano la differenziazione di diverse versioni pre-release, come (in ordine ): "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 candidate candidate", "2.4.0 final", "2.4.1", "2.4.2", ecc.
Il problema principale che ho con questo è che RPM considera che "2.4.0" arriva prima di "2.4.0.alpha1", quindi non posso semplicemente aggiungere il suffisso alla fine del numero di versione finale.
Potrei provare "2.4.0.alpha1", "2.4.0.beta1", "2.4.0.final", che funzionerebbe, ad eccezione del "candidato candidato" che verrà considerato dopo "2.4.0.final ".
Un'alternativa che ho preso in considerazione è l'uso della sezione "epoca:" del numero di versione di RPM (l'epoca: il prefisso è considerato prima del numero di versione principale in modo che "1: 2.4.0" sia effettivamente precedente a "2: 1.0.0") . Inserendo un timestamp nel campo epoch:, tutte le versioni vengono ordinate come previsto da RPM, poiché le loro versioni sembrano aumentare nel tempo. Tuttavia, ciò non riesce quando vengono rilasciate nuove versioni contemporaneamente su più versioni principali (ad esempio, 2.3.2 viene rilasciato dopo la 2.4.0, ma le loro versioni per RPM sono "20121003: 2.3.2" e "20120928: 2.4. 0 "e i sistemi su 2.3.2 non possono essere" aggiornati "a 2.4.0, perché rpm lo vede come una versione precedente). In questo caso, yum / zypper / etc si rifiutano di passare alla 2.4.0, quindi il mio problema.
Quali numeri di versione posso usare per raggiungere questo obiettivo e assicurati che RPM consideri sempre i numeri di versione in ordine. O se non i numeri di versione, altri meccanismi nella confezione RPM?
Nota 1: Vorrei mantenere il campo "Rilascio:" del file delle specifiche per lo scopo originale (diverse versioni di pacchetti, comprese le modifiche al pacchetto, per la stessa versione del software in pacchetto).
Nota 2: Questo dovrebbe funzionare con le attuali versioni di produzione delle principali distribuzioni, come RHEL / CentOS 6 e SLES 11. Ma sono interessato a soluzioni che non lo fanno, purché non comportino la ricompilazione di rpm!
Nota 3: Su sistemi simili a Debian, dpkg usa un componente speciale nel numero di versione che è il carattere "~" (tilde). Questo fa sì che dpkg conteggi il suffisso come ordine "negativo", in modo che "2.4.0 ~ nulla" venga prima di "2.4.0". Quindi, l'ordinamento normale si applica dopo "~", quindi "2.4.0 ~ alpha1" precede "2.4.0 ~ beta1" perché "alpha" precede "beta" in ordine alfabetico. Non sto necessariamente cercando di usare lo stesso schema per i pacchetti RPM (sono abbastanza sicuro che non esiste tale equivalente), quindi questo è solo FYI.