Um RPM-Pakete mehrerer verschiedener Versionen einiger Software zu veröffentlichen, suche ich nach einer Möglichkeit, Versionsnummern anzugeben, die als "Upgrades" gelten, und die Unterscheidung mehrerer Vorabversionen, wie z. B. (in Reihenfolge) ): "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" usw.
Das Hauptproblem dabei ist, dass RPM der Ansicht ist, dass "2.4.0" früher als "2.4.0.alpha1" kommt, sodass ich das Suffix nicht einfach am Ende der endgültigen Versionsnummer hinzufügen kann.
Ich könnte "2.4.0.alpha1", "2.4.0.beta1", "2.4.0.final" ausprobieren, was funktionieren würde, mit Ausnahme des "Release Candidate", der später als "2.4.0.final" betrachtet wird ".
Eine Alternative, die ich in Betracht gezogen habe, ist die Verwendung des Abschnitts "epoch:" der RPM-Versionsnummer (das Präfix epoch: wird vor der Hauptversionsnummer berücksichtigt, sodass "1: 2.4.0" tatsächlich früher als "2: 1.0.0" ist). . Durch Einfügen eines Zeitstempels in das Feld epoch: werden alle Versionen wie von RPM erwartet sortiert, da ihre Versionen mit der Zeit zuzunehmen scheinen. Dies schlägt jedoch fehl, wenn neue Versionen für mehrere Hauptversionen gleichzeitig erstellt werden (z. B. wird 2.3.2 nach 2.4.0 veröffentlicht, die RPM-Version lautet jedoch "20121003: 2.3.2" und "20120928: 2.4". 0 "und Systeme unter 2.3.2 können nicht auf 2.4.0" aktualisiert "werden, da rpm dies als ältere Version ansieht. In diesem Fall weigern sich yum / zypper / etc, auf 2.4.0 zu aktualisieren, daher mein Problem.
Welche Versionsnummern kann ich verwenden, um dies zu erreichen, und stellen Sie sicher, dass RPM die Versionsnummern immer als in Ordnung betrachtet. Oder wenn nicht Versionsnummern, anderer Mechanismus in der RPM-Verpackung?
Hinweis 1: Ich möchte das Feld "Release:" der Spezifikationsdatei für den ursprünglichen Zweck beibehalten (mehrere Versionen von Paketen, einschließlich Verpackungsänderungen, für dieselbe Version der gepackten Software).
Hinweis 2: Dies sollte auf aktuellen Produktionsversionen wichtiger Distributionen wie RHEL / CentOS 6 und SLES 11 funktionieren. Aber ich bin an Lösungen interessiert, die dies auch nicht tun, solange sie keine Neukompilierung der Drehzahl beinhalten!
Hinweis 3: Auf Debian-ähnlichen Systemen verwendet dpkg eine spezielle Komponente in der Versionsnummer, nämlich das Zeichen "~" (Tilde). Dies führt dazu, dass dpkg das Suffix als "negative" Reihenfolge zählt, so dass "2.4.0 ~ alles" vor "2.4.0" steht. Dann gilt die normale Reihenfolge nach "~", sodass "2.4.0 ~ alpha1" vor "2.4.0 ~ beta1" steht, da "alpha" alphabetisch vor "beta" steht. Ich möchte nicht unbedingt dasselbe Schema für RPM-Pakete verwenden (ich bin mir ziemlich sicher, dass es kein solches Äquivalent gibt), daher ist dies nur zu Ihrer Information.