![]() |
deb-version(5) |
![]() |
deb−version − format numerów wersji pakietów Debiana
[ epoka:] wersja_upstream [−rewizja_debiana ]
Numery wersji u¿ywane dla 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_upstream 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_upstream (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ê_upstream. Czê¶æ wersja_upstream numeru wersji pakietu jest wymagana.
wersja_upstream 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 upstream. 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_upstream nie mo¿e zawieraæ dwukropka. 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_upstream siê zwiêksza.
Dpkg dzieli numer wersji na czê¶ci wzglêdem ostatniego my¶lnika w napisie (je¶li taki jest), aby okre¶liæ wersjê upstream 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ê¶æ wumeru wersji).
Algorytm
sortowania
System zarz±dzania pakietami porównuje
wersjê_upstream 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±.
Znak tyldy oraz jego specyficzny sposób sortowania zosta³y wprowadzone w wersji 1.10 dpkg, za¶ niektóre inne elementy dpkg−dev uzyska³y odpowiednie wsparcie dopiero pó¼niej w serii 1.10.x.
deb−control(5), deb(5), dpkg(1)
Copyright
© 1996,1997,1998 Ian Jackson i Christian Schwarz
Copyright © 2007 Frank Lichtenheld
Niniejszy program jest oprogramowaniem wolnym, sprawd¼ Powszechn± Licencjê Publiczn± GNU w wersji drugiej lub pó¼niejszej, by dowiedzieæ siê o warunkach dystrybucji. Brak JAKIEJKOLWIEK gwarancji.
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
![]() |
deb-version(5) | ![]() |