Bazı yazılımların birkaç farklı sürümünün RPM paketlerini yayınlamak için, "yükseltme" olarak kabul edilen "sayılar" sürümünü belirtmenin ve (sırayla (sırayla) ): "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", "2.4.0 sürüm adayı", "2.4.0 final", "2.4.1", "2.4.2" vb.
Bununla ilgili ana sorun, RPM'nin "2.4.0" ın "2.4.0.alpha1" den daha önce geldiğini düşünmesi, bu yüzden son sürüm numarasının sonuna sonek ekleyemem.
"2.4.0.alpha1", "2.4.0.beta1", "2.4.0.final" i deneyebilirim, ancak "2.4.0.final'den daha sonra kabul edilecek" serbest bırakma adayı "dışında ".
Düşündüğüm bir alternatif RPM sürüm numarasının "epoch:" bölümünü kullanmaktır (epoch: öneki ana sürüm numarasından önce dikkate alınır, böylece "1: 2.4.0" aslında "2: 1.0.0" dan daha erken olur) . Epoch: alanına bir zaman damgası koyarak, tüm sürümler RPM tarafından beklendiği gibi sıralanır, çünkü sürümleri zamanla artmaktadır. Ancak, aynı anda birkaç ana sürümde yeni sürümler yapıldığında bu başarısız olur (örneğin, 2.3.2 2.4.0'dan sonra yayınlanır, ancak RPM sürümleri "20121003: 2.3.2" ve "20120928: 2.4'tür. 0 "ve 2.3.2 üzerindeki sistemler 2.4.0'a" yükseltilemez ", çünkü rpm daha eski bir sürüm olarak görür). Bu durumda, yum / zypper / vb 2.4.0'a yükseltmeyi reddeder, bu yüzden benim sorunum.
Bunu yapmak için hangi sürüm numaralarını kullanabilirim ve RPM'nin her zaman sürüm numaralarının sırayla olduğunu düşündüğünden emin olabilirim. Veya sürüm numaraları değilse, RPM ambalajındaki diğer mekanizmalar?
Not 1: Spesifikasyon dosyasının "Release:" alanını orijinal amacı için saklamak istiyorum (ambalajlı yazılımın aynı sürümü için ambalaj değişiklikleri de dahil olmak üzere çeşitli ambalaj sürümleri).
Not 2: Bu, RHEL / CentOS 6 ve SLES 11 gibi büyük dağıtımların mevcut üretim sürümleri üzerinde çalışmalıdır. Ancak, rpm'yi yeniden derlemesini içermediği sürece ben de olmayan çözümlerle ilgileniyorum!
Not 3: Debian benzeri sistemlerde, dpkg sürüm numarasında "~" (tilde) karakteri olan özel bir bileşen kullanır. Bu, dpkg son ekini "negatif" sıralama olarak saymaya neden olur, böylece "2.4.0 ~ herhangi bir şey" "2.4.0" dan önce gelir. Daha sonra, "~" dan sonra normal sıralama uygulanır, bu nedenle "2.4.0 ~ alfa1" "2.4.0 ~ beta1" den önce gelir, çünkü "alfa" alfabetik olarak "beta" dan önce gelir. Ben mutlaka RPM paketleri için aynı düzeni kullanmak istemiyorum (bu tür eşdeğer var eminim), bu yüzden bu sadece FYI.