Provided by: dpkg-dev_1.17.5ubuntu5.8_all 

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
Projekt Debian 2013-04-02 deb-version(5)