2010-06-08 9 views
5

Mamy aplikację internetową, którą pakujemy w RPM. Mamy problem z polem wersji RPM.W jaki sposób yum porównuje wersje?

Powiedzmy zainstalowaliśmy nasz rpm: foo-2.1.0.007

007 jest nasz numer kompilacji.

Teraz, gdy próbujemy zainstalować nowszą rpm, foo-2.1.0.010, yum mówi: "Nie ma nic do aktualizacji".

Kiedy mam przerobiony RPM, ale usunęła zer, problem został rozwiązany:

bla-2.1.0.7

bla-2.1.0.10

Według this link każdego segmentu wersji jest porównywana jako liczba całkowita, ale praktyka pokazuje inaczej.

Moje pytanie brzmi: jaki jest algorytm porównania wersji dla RPM i dlaczego wiodące zera przeszkadzają?

Odpowiedz

14

Yum prosi tylko rpm o ich porównanie. Można zainstalować rpmdevtools, a następnie użyć:

% rpmdev-vercmp foo-2.1.0.010 foo-2.1.0.007 
0:foo-2.1.0.010 is newer 

... czego można się spodziewać. Jeśli nie masz epoki w pakiecie 007, nie jestem pewien, dlaczego otrzymujesz inną odpowiedź. Jaką wersję rpm masz? Co dla ciebie oznacza vercmp?

+0

Nie mam pojęcia jak, ale teraz wszystko działa zgodnie z oczekiwaniami, co oznacza, że ​​010 jest zainstalowany na 007. Dziwne –

+1

Dzięki, mogłem się domyślić, że RPM naprawdę uważa, że ​​0.901 jest nowszy niż 0.92, ale nie 0.920. Oczywiście porównuje kropkowane liczby całkowite zamiast liczb dziesiętnych. – theory

Powiązane problemy