.\" -*- coding: UTF-8 -*- .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" Generated by scdoc 1.11.4 .\" Complete documentation for this program is not available as a GNU info page .nh .ad l .\" Begin generated content: .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH RPM\-VERSION 7 "8. Januar 2026" "RPM 6.0.1" .PP .SH BEZEICHNUNG \fBrpm\-version\fP \- RPM\-Versionssystem .PP .SH ÜBERSICHT [\fIEPOCHE\fP\fB:\fP]\fIVERSION\fP[\fB\-\fP\fIVERÖFFENTLICHUNG\fP] .PP .SH BESCHREIBUNG Die Bezeichnung \fIEVR\fP wird zur Bezeichnung von Softwareversionen in RPM verwendet und besteht aus bis zu drei \fIKomponenten\fP: .PP .PD 0 .IP \(bu 4 \fIVERSION\fP gibt die tatsächliche Version der paketierten Software an. .IP \(bu 4 \fIVERÖFFENTLICHUNG\fP gibt Paketrevisionen innerhalb dieser Softwareversion an. .IP \(bu 4 Die \fIEPOCHE\fP ist eine künstliche Außerkraftsetzung, um Versionierungsanomalien zu umgehen. .PD .PP Nur die Komponente \fIVERSION\fP ist in einer \fIEVR\fP\-Bezeichnung zwingend erforderlich. Jedoch haben alle RPM\-Pakete eine \fIVERSION\fP und eine \fIVERÖFFENTLICHUNG\fP. .PP .SS Version Die Zeichenkette \fIVERSION\fP gibt die tatsächliche Version der paketierten Software an. .PP Diese Zeichenkette besteht aus alphanumerischen ASCII\-Zeichen, die optional durch einen Punkt (\fB.\fP), einen Unterstrich (\fB_\fP) und das Plus\-Zeichen (\fB+\fP) als \fITrenner\fP sowie die \fIOperatoren\fP Tilde (\fB\(ti\fP) und Caret (\fB\(ha\fP) \fIunterteilt\fP sein können. .PP Die \fIOperatoren\fP werden verwendet, um Zeichenketten von Vor\- und Nachveröffentlichungsversionen in eine stimmige Aktualisierung abzubilden. .PP Zu beachten ist, dass der Bindestrich (\fB\-\fP) NICHT innerhalb von \fIVERSION\fP oder \fIVERÖFFENTLICHUNG\fP verwendet werden darf, da er als Komponententrennzeichen dient. .PP .SS Veröffentlichung Die \fIVERÖFFENTLICHUNG\fP spiegelt eine Revision innerhalb einer einzelnen Softwareversion wider. Idealerweise ist die \fIVERÖFFENTLICHUNG\fP eine einfache Ganzzahl, die bei Änderungen an einem Paket erhöht wird und bei Änderungen der Softwareversion (auf 1) zurückgesetzt werden sollte. .PP Technisch betrachtet ist das Format exakt das selbe wie für \fIVERSION\fP. .PP .SS Epoche Die \fIEPOCHE\fP ist eine nichtnegative Ganzzahl, die durch einen Doppelpunkt (\fB:\fP) von der Version getrennt ist. Es ist der wichtigste Teil eines \fIEVR\fP und korrigiert den Versionsvergleich dahingehend, dass eine ältere Version neuer erscheint. Es ist manchmal notwendig, Versionsanomalien zu umgehen, z.B. wenn ein Softwareprojekt sein Versionsschema ändert, aber auch um Paketierungsfehler zu korrigieren. .PP Wenn die Angabe der \fIEPOCHE\fP weggelassen wird, wird diese implizit als 0 angenommen. .PP Die Epoche sollte nur als eine Art »letzter Ausweg« angegeben werden. Eine solche Angabe verstößt gegen das Prinzip der geringsten Überraschung, und eine Änderung erfordert die entsprechende Aktualisierung aller zugehörigen versionierten Abhängigkeiten in anderen Paketen. .PP .SS Vergleichen Zwei \fIEVR\fPs werden komponentenweise von links nach rechts verglichen. Die Komponenten werden segmentweise von links nach rechts verglichen. Der Vergleich wird beendet, sobald ein Unterschied auf Segment\- oder Komponentenebene festgestellt wird. Wenn sich also beispielsweise schon die Angaben der Epoche unterscheiden, wird der Rest des \fIEVR\fP überhaupt nicht berücksichtigt. .PP Innerhalb von Komponenten bilden aufeinanderfolgende alphabetische Zeichen und aufeinanderfolgende Zahlen \fIimplizite Segmente\fP. \fIExplizite Segmente\fP werden durch \fITrennzeichen\fP und \fIOperatoren\fP gekennzeichnet. Numerische Segmente werden numerisch verglichen, als Ganzzahlen, wobei führende Nullen ignoriert werden, andernfalls wird ein lexikografischer Vergleich verwendet. Das heißt, \fBabc123\fP besteht aus zwei Segmenten: \fBabc\fP und \fB123\fP und ist trotz unterschiedlicher Darstellung gleich \fBabc0123\fP, \fBabc.123\fP und \fBabc.000123\fP. .PP Ungeachtet ihres tatsächlichen Inhalts werden numerische Segmente stets als neuer als alphabetische Segmente angesehen. Wenn sie ansonsten gleich sind, wird die Komponente mit mehr Segmenten als neuer angesehen, und analog dazu ist eine \fIEVR\fP\-Angabe mit mehr Komponenten neuer. Zum Beispiel ist \fB0.0\fP neuer als \fB0\fP und \fB1.xyz\fP älter als \fB1.0\fP, aber neuer als \fB1\fP. .PP Die Zeichen des Segment\-\fITrennzeichens\fP werden nicht verglichen, so dass sie gegeneinander austauschbar verwendet werden können. Mehrere aufeinanderfolgende Trennzeichen werden so behandelt, als ob nur ein Trennzeichen verwendet würde. Somit ist \fB1.0\fP gleich \fB1+0\fP und \fB1+.+0\fP. .PP Der Tilde\-Operator, der für \fIVorabversionen\fP verwendet wird, bewirkt, dass ein Segment als älter einsortiert wird. Beispielsweise ist \fB2.0\(tibeta1\fP älter als \fB2.0\fP oder\fB2.0\(tirc1\fP und neuer als \fB1.0\fP. Der Caret\-Operator ist im Wesentlichen das Gegenteil der Tilde. Er bewirkt, dass ein Segment nach neueren Versionen sortiert wird und wird für \fINachveröffentlichungs\-Schnappschüsse\fP verwendet, die zwischen aktuellen Software\-Veröffentlichungen existieren. Beispielsweise ist \fB2.0\(ha150825\fP neuer als \fB2.0\fP, aber älter als \fB2.0.1\fP. .PP .SH BEISPIELE \fB123\fP .RS 4 Eine einfache, nicht segmentierte Version \fB123\fP. Neuer als \fB99\fP, älter als \fB321\fP. .PP .RE \fB1.\&0.\&1\fP .RS 4 Eine segmentierte Versionszeichenkette \fB1.0.1\fP, wie sie häufig in Softwareprojekten verwendet wird, um die »Haupt\-.Neben\-.Mikro«\-Semantik anzugeben. Neuer als \fB1.0\fP, älter als \fB1.0.2\fP. .PP .RE \fB2.\&60.\&1\-1\fP .RS 4 Erste Veröffentlichung der Version \fB2.60.1\fP. Neuer als \fB2.0\fP oder \fB2.60\fP, aber älter als \fB3.0\fP. .PP .RE \fB1.\&0\-5\fP .RS 4 Fünfte Veröffentlichung der Version \fB1.0\fP, neuer als \fB1.0\fP oder \fB1.0\-1\fP, älter als \fB1.0.1\fP. .PP .RE \fB5:3.\&0\-1\fP .RS 4 Erste Veröffentlichung der Version \fB3.0\fP, mit Epoche \fB5\fP. Neuer als \fB6.0\-1\fP oder \fB4:6.0\-1\fP, älter als \fB5:3.1\-1\fP. .PP .RE \fB1.\&0\(tibeta2\fP .RS 4 Vorabveröffentlichung \fBbeta2\fP der Version \fB1.0\fP. Neuer als \fB0.99\fP und \fB1.0\(tibeta1\fP, älter als \fB1.0\fP. .PP .RE \fB2.\&0\(ha20250611\fP .RS 4 Nachveröffentlichungs\-Schnappschuss \fB20250611\fP der Version \fB2.0\fP. Neuer als \fB2.0\fP, älter als \fB2.0.1\fP. .PP .RE .SH FEHLER Der Algorithmus des Versionsvergleichs zeigt zuweilen unerwartetes Verhalten – und es gibt diverse »dunkle Ecken«. Diese sind jedoch schwierig zu adressieren, da ein hohes Risiko besteht, existierende Pakete zu beeinträchtigen: .PP .PD 0 .IP \(bu 4 Nicht\-ASCII\-Zeichen werden ignoriert und sind daher gleich: \fB1.1.α\fP ist gleich \fB1.1.β\fP und sogar \fB1.1.ββ\fP. \fBrpmbuild\fP(1) lehnt solche EVRs ab, aber es ist möglich, dass Sie durch API\-Nutzung, sehr alte und mit Drittanbieter\-Software erstellte Pakete auf solche »unzulässigen« Werte stoßen. .IP \(bu 4 Implizite Segmente können trügerisch sein: \fB1.f\fP ist neuer als \fB1c.f\fP. Das Ergebnis wird deutlicher, wenn die Segmente explizit gemacht werden: \fB1.f\fP ist neuer als \fB1.c.f\fP, da die Segmente einzeln verglichen werden, und \fBc\fP ist lexikografisch weiter hinten als \fBf\fP einsortiert. .PD .PP \fBrpm\fP(8), \fBrpmbuild\fP(1), \fBrpmsort\fP(1) .PP \fBhttp://www.\&rpm.\&org/\fP .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: .MT debian-l10n-german@lists.debian.org .ME .