NAZWA¶
deb-version - format numerów wersji pakietów Debiana
SKŁADNIA¶
[
epoka:]
wersja_macierzystaupstream[
-rewizja_debiana]
OPIS¶
Numery wersji używane do binarnych i źródłowych
pakietów Debiana składają się z trzech
części. Są to:
- epoka
- Jest to pojedyncza (typowo niewielka), liczba całkowita bez znaku.
Może być pominięta, w takim przypadku jest
przyjmowana jako zero. Jeśli jest pominięta, wtedy
wersja-macierzysta nie może zawierać żadnego
dwukropka.
- Jest używana aby można było pozbyć się
pomyłek w numerach wersji starszych wersji pakietów, oraz
poradzić sobie ze zmianą poprzednich schematów
numerowania wersji.
- wersja-macierzysta (wersja nadana przez autora)
- Główna część numeru wersji. Zwykle jest
to numer wersji oryginalnego ("upstream") pakietu, na podstawie
którego powstał plik .deb, o ile jest to
możliwe. Typowo jest w tym samym formacie jaki został
użyty przez autora(ów) pakietu. Może jednak
zostać przeformatowana aby lepiej pasować do formatu i
schematu porównywania wersji używanego przez system
zarządzania pakietami.
- Poniżej opisane jest zachowanie systemu zarządzania
pakietami podczas porównywania uwzględniającego
wersję-macierzysta. Część
wersja-macierzysta numeru wersji pakietu jest wymagana.
- Wersja-macierzysta może zawierać jedynie znaki
alfanumeryczne ("A-Za-z0-9") oraz znaki . +
- : ~ (kropkę, plus, myślnik,
dwukropek, tyldę) i powinna zaczynać się od cyfry.
Jeśli nie jest używana rewizja-debiana, wtedy nie
są dozwolone myślniki; jeśli zaś nie jest
używana epoka, wtedy nie są dozwolone dwukropki.
- rewizja-debiana
- Ta część numeru wersji określa wersję
pakietu Debiana bazującego na tej samej wersji macierzystej.
Może zawierać jedynie znaki alfanumeryczne oraz znaki
+ . (plus, kropkę, tyldę) i jest
porównywana w ten sam sposób co wersja-upstream.
- Jest to część opcjonalna. Jeśli nie jest
używana, wtedy wersja-macierzysta nie może
zawierać myślnika. Taki format odpowiada przypadkowi, gdzie
oprogramowanie było tworzone z myślą o zamianie go w
pakiet Debiana, więc jest tylko jedna jego "debianizacja"
i dlatego wskazywanie rewizji nie jest potrzebne.
- Powszechnie przyjęte jest rozpoczynanie rewizji_debiana od 1
za każdym razem, gdy wersja-macierzysta się
zwiększa.
- Dpkg dzieli numer wersji na części względem
ostatniego myślnika w łańcuchu (jeśli taki
jest), aby określić wersję-macierzystą
oraz rewizję-debiana. Przy porównywaniu,
brakująca rewizja-debiana poprzedza każde jej
wystąpienie (jednak warto pamiętać, że jest to
najmniej znacząca część numeru wersji).
Sorting algorithm¶
System zarządzania pakietami porównuje
wersję-macierzystą oraz
rewizję-debiana
używając tego samego algorytmu:
Napisy są porównywane od lewej do prawej.
Najpierw określane są początkowe części
każdego napisu, składające się
wyłącznie ze znaków nie będących cyframi.
Te dwie części (z których jedna może być
pusta) są porównywane leksykalnie. Jeśli zostanie
znaleziona różnica, jest ona zwracana. Porównanie
leksykalne jest porównaniem wartości ASCII zmodyfikowanych tak,
że wszystkie litery poprzedzają wszystkie inne znaki nie
będące literami, a dodatkowo tylda poprzedza wszystko, nawet
koniec części. W następującym przykładzie
części występują w kolejności posortowanej:
"~~", "~~a", "~", część
pusta, "a".
Następnie określane są początki pozostałych
części z każdego napisu, składające
się wyłącznie z samych cyfr. Wartości liczbowe
tych dwóch części są porównywane i
jeśli zostanie znaleziona różnica, jest ona zwracana jako
wynik porównania. Pusty ciąg znaków (który
może się pojawić jedynie na końcu jednego lub obu
porównywanych napisów) jest przy tym liczony jako zero.
Te dwa kroki (porównywanie i usuwanie początkowych napisów
bez cyfr oraz początkowych napisów z samymi cyframi) są
powtarzane, aż zostanie znaleziona różnica lub oba
ciągi zostaną wyczerpane.
Należy zauważyć, że celem epok jest
umożliwienie pozbycia się pomyłek w numerach wersji
pakietów, jak również poradzenie sobie ze zmianą
schematu numerowania wersji.
Nie są one natomiast przeznaczone
do radzenia sobie z numerami wersji zawierających ciągi
znaków, których system zarządzania pakietami nie
może zinterpretować (jak np. "ALPHA" lub
"pre-"), czy z inną dziwną kolejnością.
UWAGI¶
The tilde character and its special sorting properties were introduced in dpkg
1.10 and some parts of the dpkg build scripts only gained support for it later
in the 1.10.x series.
ZOBACZ TAKŻE¶
deb-control(5),
deb(5),
dpkg(1)
TŁUMACZE¶
Piotr Roszatycki <dexter@debian.org>, 1999
Bartosz Feński <fenio@debian.org>, 2004-2005
Robert Luberda <robert@debian.org>, 2006-2008
Wiktor Wandachowicz <siryes@gmail.com>, 2008
Michał Kułach <michal.kulach@gmail.com>, 2012