Wie ermittelt RPM ein neueres Paket?

2469
PP.

Ich habe den Apache httpd 2.2.3 SRPM genommen und die .spec-Datei extrahiert. Aus diesem Grund habe ich 2.2.3 durch 2.2.14 ersetzt und das SerialTag aus der Spezifikationsdatei entfernt (wie rpmbuildüber das Serial-Tag geklagt - ich nehme an, dass dies veraltet ist). Das httpd-Tarball heruntergeladen und rpmbuildohne Fehler (zu meiner Überraschung) eingebaut ( ).

Beim Ausführen von rpm --upgrade<newrpms> wurde eine Fehlermeldung angezeigt, dass meine neuen RPMs nicht neuere Versionen waren, obwohl das VersionTag eindeutig später ist. Ich habe das Releasejedoch auf 1 gesetzt.

Ich habe versucht, durch Google zu suchen, um herauszufinden, wie rpmdie neueste Version bestimmt ist (kein Glück). Von den rpm -qiBefehlen habe ich folgendes für die Standardinstallation von 2.2.3:

Name: httpd Umzüge: (nicht umsetzbar) Version: 2.2.3 Hersteller: CentOS Veröffentlichung: 31.el5.centos Erstellungsdatum: Do 03 Sep 2009 10:43:06 BST Installationsdatum: Mo 26 Okt 2009 10:27:12 AM GMT Build Host: builder16.centos.org Gruppe: Systemumgebung / Daemons-Quell-RPM: httpd-2.2.3-31.el5.centos.src.rpm Größe: 3254910 Lizenz: Apache-Softwarelizenz Signatur: DSA / SHA1, So 20 Sep 2009 04:53:42 BST, Schlüssel-ID a8a447dce8562897 URL: http://httpd.apache.org/ Zusammenfassung: Apache HTTP Server 

Von meinem 2.2.14-Build habe ich:

Name: httpd Umzüge: (nicht umsetzbar) Version: 2.2.14 Hersteller: Apache Software Foundation Veröffentlichung: 1 Build Date: Mo 16 Nov 2009 11:40:41 AM GMT Installationsdatum: Mo 16 Nov 2009 11:44:38 GMT Build Host: build01.local Gruppe: Systemumgebung / Daemons-Quell-RPM: httpd-2.2.14-1.src.rpm Größe: 5101686 Lizenz: Apache-Lizenz, Version 2.0 Unterschrift: (keine) URL: http://httpd.apache.org/ Zusammenfassung: Apache HTTP Server 

Die Frage ist also: Wie kann rpmermittelt werden, welches RPM für Upgrades aktuell ist?

1

1 Antwort auf die Frage

2
Craig

Das serielle Tag wurde veraltet und durch das Epoch-Tag ersetzt.

Ich weiß nicht, wie das serielle Tag funktioniert, aber Versionsvergleiche mit dem Epochen-Tag haben die Epoche der Version vor dem Vergleich vorangestellt.

Ich gehe davon aus, dass mit seriell etwas Ähnliches gemacht wurde.

Ich vermute, der serielle Wert wurde ebenfalls vorangestellt, sodass Sie Versionen wie diese vergleichen:

<serial>-<version>-<release> 

Wenn der Serienwert im Original> 1 war, schätze ich, dass der Standardwert 1 ist, wenn er nicht angegeben ist.

Sie können jederzeit rpm --forceein Upgrade auf ein bestimmtes RPM erzwingen