RPM-VERSION(7) Miscellaneous Information Manual RPM-VERSION(7) NUME rpm-version - sistemul de versiuni RPM SINOPSIS [EPOCH:]VERSION[-RELEASE] DESCRIERE O eticheta cunoscuta sub numele de EVR este utilizata pentru a face referire la versiunile de software din RPM, constand din maximum trei componente: o VERSION (versiune) reflecta versiunea actuala a pachetului software. o RELEASE (lansare) reflecta reviziile impachetarii in cadrul acelei versiuni de software. o EPOCH (epoca) este o suprascriere artificiala care permite rezolvarea anomaliilor legate de denumirea versiunilor. Numai componenta VERSION este obligatorie intr-o eticheta EVR. Cu toate acestea, toate pachetele RPM au o componenta VERSION i o componenta RELEASE. Versiune irul VERSION reflecta versiunea actuala a software-ului impachetat. irul este format din caractere alfanumerice ASCII, opional segmentate cu separatoare punct (.), liniua de subliniere (_) i semnul plus (+), i operatori tilde (~) i caret (^). Operatorii I sunt utilizai pentru a asocia irurile de caractere ale versiunilor anterioare i ulterioare lansarii intr-o evoluie a actualizarii coerenta. De remarcat faptul ca liniua de unire (-) NU poate fi utilizata in VERSION sau RELEASE, deoarece este separatorul de componente. Lansare RELEASE reflecta o revizuire in cadrul unei singure versiuni de software. In mod ideal, RELEASE este un numar intreg simplu care crete de fiecare data cand se fac modificari la un pachet i ar trebui sa fie reiniializat (la 1) de fiecare data cand se schimba versiunea de software. Din punct de vedere tehnic, formatul este exact acelai ca pentru VERSION. Epoca EPOCH este un numar intreg nenegativ, separat de versiune prin doua puncte (:). Este cea mai importanta parte a unui EVR, distorsionand compararea versiunilor pentru a face o versiune mai veche sa para mai noua. Uneori este necesar sa se rezolve anomaliile de versiune, cum ar fi schimbarea schemei de versiuni a unui proiect software, dar i erorile de impachetare. O componenta EPOCH omisa are o valoare implicita de zero. EPOCH ar trebui utilizata numai ca ultima soluie. Aceasta incalca principiul surprizei minime, iar modificarea acesteia necesita actualizarea corespunzatoare a tuturor dependenelor versiunilor conexe din alte pachete. Compararea Doua EVR-uri sunt comparate de la stanga la dreapta, cate o componenta pe rand. Componentele sunt comparate de la stanga la dreapta, cate un segment pe rand. Compararea se oprete imediat ce se gasete o diferena la nivel de segment sau componenta, astfel incat, daca, de exemplu, epocile difera, restul EVR-ului nu este luat in considerare deloc. In cadrul componentelor, caracterele alfabetice consecutive i numerele consecutive formeaza segmente implicite. Segmentele explicite sunt indicate prin separatoare i operatori. Segmentele numerice sunt comparate numeric ca numere intregi, ignorandu-se zerourile din faa, in caz contrar fiind utilizata comparaia lexicografica. Adica, abc123 consta din doua segmente: abc i 123 i este egal cu abc0123, abc.123 i abc.000123, in ciuda diferenei de aspect. Segmentele numerice sunt considerate mai noi decat segmentele alfabetice, indiferent de coninutul real. In cazul in care sunt egale, componenta cu mai multe segmente este considerata mai noua, iar in mod similar, un EVR cu mai multe componente este considerat mai nou. De exemplu, 0.0 este mai nou decat 0, iar 1.xyz este mai vechi decat 1.0, dar mai nou decat 1. Caracterele segmentului separator nu sunt comparate, astfel incat pot fi utilizate in mod interschimbabil, iar separatoarele consecutive multiple sunt tratate ca i cum ar fi fost utilizat un singur separator. Astfel, 1.0 este egal cu 1+0 i 1+.+0. Operatorul tilda determina sortarea unui segment mai vechi i este utilizat pentru versiuni pre-lansare. De exemplu, 2.0~beta1 este mai vechi decat 2.0 sau 2.0~rc1 i mai nou decat 1.0. Operatorul caret este, in esena, opusul operatorului tilda. Acesta determina sortarea unui segment mai nou i este utilizat pentru instantanee post-lansare care exista intre lansarile efective de software. De exemplu, 2.0^150825 este mai nou decat 2.0, dar mai vechi decat 2.0.1. EXEMPLE 123 O versiune simpla cu un singur segment 123. Mai noua decat 99, mai veche decat 321.Aceasta determina sortarea segmentului ca fiind mai nou i este utilizata pentru instantanee post-lansare care exista intre lansarile efective ale software-ului. De exemplu, 2.0^150825 este mai recent decat 2.0, dar mai vechi decat 2.0.1. 1.0.1 Un ir de caractere segmentat 1.0.1, utilizat frecvent in proiectele software pentru a indica semantica majora.minora.micro. Mai nou decat 1.0, mai vechi decat 1.0.2. 2.60.1-1 Prima lansare a versiunii 2.60.1. Mai noua decat 2.0 sau 2.60, dar mai veche decat 3.0. 1.0-5 A cincea lansare a versiunii 1.0, mai noua decat 1.0 sau 1.0-1, mai veche decat 1.0.1. 5:3.0-1 Prima lansare a versiunii 3.0, cu epoca 5. Mai noua decat 6.0-1 sau 4:6.0-1, mai veche decat 5:3.1-1. 1.0~beta2 Versiune preliminara (pre-lansare) beta2 a versiunii 1.0. Mai noua decat 0.99 i 1.0~beta1, mai veche decat 1.0. 2.0^20250611 Instantanee post-lansare 20250611 a versiunii 2.0. Mai noua decat 2.0, mai veche decat 2.0.1. ERORI In algoritmul de comparare a versiunilor exista diverse comportamente neevidente i aspecte obscure, dar acestea sunt dificil de abordat din cauza riscului ridicat de a afecta pachetele existente: o Caracterele non-ASCII sunt ignorate i, prin urmare, sunt egale: 1.1. este egal cu 1.1. i chiar cu 1.1.. rpmbuild(1) respinge astfel de EVR-uri, dar este posibil sa intalnii valori ,,ilegale" prin utilizarea API-ului, pachete foarte vechi i pachete create cu instrumente tere. o Segmentele implicite pot fi inelatoare: 1.f este mai nou decat 1c.f. Rezultatul devine mai evident prin explicarea segmentelor: 1.f este mai nou decat 1.c.f deoarece segmentele sunt comparate unul cate unul, iar c este sortat lexicografic mai jos decat f. rpm(8) rpmbuild(1) rpmsort(1) http://www.rpm.org/ TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . RPM 6.0.1 8 ianuarie 2026 RPM-VERSION(7)