NOME¶
deb-version - formato del numero di versione dei pacchetti Debian
SINTASSI¶
[
epoca:]
versione-originale[
-revisione-debian]
DESCRIZIONE¶
I numeri di versione usati per i pacchetti binari e sorgente di Debian sono
formati da tre componenti che sono:
- epoca
- Questo è un singolo intero senza segno (generalmente piccolo).
Può essere omesso, nel qual caso viene considerato equivalente a
zero. Se viene omesso allora la versione-originale non può
contenere alcun carattere «:».
- Viene fornito per permettere di tralasciare errori nei numeri di versione
delle versioni più vecchie di un pacchetto e anche negli schemi di
numerazione precedenti di un pacchetto.
- versione-originale
- Questa è la parte principale del numero di versione. È
solitamente il numero di versione del pacchetto originale
(«upstream») dal quale è stato creato il file
.deb, se ciò è possibile. Solitamente è nello
stesso formato specificato dall'autore originale; tuttavia può
essere necessario riformattarlo per adattarlo al formato e allo schema di
confronto del sistema di gestione dei pacchetti.
- Il metodo di confronto del sistema di gestione dei pacchetti per
ciò che riguarda versione-originale è descritto in
seguito. La porzione versione-originale del numero di versione
è obbligatoria.
- versione-originale può contenere solo caratteri alfanumerici
«A-Za-z0-9» e i caratteri . + -
: ~ (punto, più, trattino, due punti, tilde) e deve
iniziare con una cifra. Se non c'è la parte revisione-debian
allora l'uso dei trattini non è permesso; se non c'è la
parte epoca allora non sono permessi i due punti.
- revisione-debian
- Questa parte del numero di versione specifica la versione del pacchetto
Debian basata sulla versione originale. Può contenere solo
caratteri alfanumerici e i caratteri + . ~
(più, punto, tilde) e viene confrontata nello stesso modo di
versione-originale.
- È opzionale; se non è presente allora
versione-originale non può contenere trattini. Questo
formato rappresenta il caso in cui un dato software è stato scritto
specificatamente per essere trasformato in un pacchetto Debian e
perciò c'è una sola sua «debianizzazione» e
quindi non è necessario indicare una revisione.
- Per convenzione si fa ripartire revisione-debian da
«1» ogni volta che aumenta versione-originale.
- dpkg spezza il numero di versione all'ultimo trattino nella stringa (se ce
n'è uno) per determinare versione-originale e
revisione-debian. In un confronto, l'assenza di una
revisione-debian viene considerarata anteriore rispetto alla sua
presenza (ma si deve notare che revisione-debian è la parte
meno significativa del numero di versione).
Algoritmo di ordinamento¶
Le parti
versione-originale e
revisione-debian vengono confrontate
dal sistema di gestione dei pacchetti usando lo stesso algoritmo:
Le stringhe vengono confrontate da sinistra a destra.
Come prima cosa, viene determinata la parte iniziale di ogni stringa che
consiste interamente di caratteri che non sono cifre. Queste due parti (di cui
una può essere vuota) sono confrontate lessicalmente. Se viene trovata
una differenza, essa viene restituita. Il confronto lessicale è un
confronto di valori ASCII, modificati in modo che tutte le lettere vengano
posizionate prima nell'ordinamento di qualsiasi cosa che non sia una lettera e
in modo che la tilde venga posizionata prima di ogni altra cosa, anche la fine
di una parte. Ad esempio, le seguenti parti sono messe in ordine:
«~~», «~~a», «~», parte vuota,
«a».
Poi viene determinata la parte iniziale del resto di ogni stringa che consiste
interamente di caratteri che sono cifre. I valori numerici di queste due parti
vengono confrontati e qualsiasi differenza trovata è restituita come
risultato del confronto. Per questi scopi una stringa vuota (che può
solo essere presente alla fine di una o di entrambe le stringhe di versione
confrontate) viene considerata come zero.
Questi due passi (confronto e rimozione delle stringhe iniziali senza cifre e
stringhe iniziali di cifre) vengono ripetuti fino a che non viene trovata una
differenza o non sono esaurite entrambe le stringhe.
Notare che lo scopo delle epoche è di permettere di tralasciare errori
nella numerazione delle versioni e di far fronte a situazioni in cui cambia lo
schema di numerazione delle versioni.
Non è pensato per
affrontare situazioni in cui i numeri di versione contengono stringhe o
lettere che il sistema di gestione dei pacchetti non può interpretare
(come «ALPHA» o «pre-») oppure con ordinamenti
insensati.
NOTE¶
Il carattere tilde e le sue particolari proprietà di ordinamento sono
stati introdotti nella versione 1.10 di dpkg e alcune parti degli script di
compilazione di dpkg hanno acquisito il supporto per essi solamente più
tardi nella serie 1.10.x.
VEDERE ANCHE¶
deb-control(5),
deb(5),
dpkg(1)