[ Pobierz całość w formacie PDF ]
z zależnościami i kolejnością ich instalowania, pobierania pakietów (w tym również zależności),
instalacji w pierwszej kolejności wszystkich zależności, a dopiero następnie instalacji i konfigu-
racji wybranego pakietu oprogramowania. Cały proces jest przeprowadzany za pomocą narzędzi
niskiego poziomu omówionych w poprzedniej sekcji.
Te same narzędzia zaawansowane mogą być również wykorzystywane do usuwania pakietów.
Przykładowo: jeżeli użytkownik chce usunąć bibliotekę współdzieloną, wówczas zostanie wyświe-
tlony komunikat informujący o konsekwencjach takiego kroku wraz z listą pakietów, które będą
musiały być odinstalowane z powodu niespełnienia zależności po usunięciu żądanej biblioteki.
Uaktualnienia obejmujące zmianę zależności (na przykład zastąpione pakiety) również mogą być
obsługiwane za pomocą takiego systemu.
Rzeczywiste możliwości tego rodzaju systemów ujawniają się, gdy aspekty zależności pakietu
ulegają zmianom w czasie lub jeśli wiele pakietów może być zamiennikami. Pakiet wymagający
możliwości wysyłania wiadomości e-mail może wymagać zależności w postaci pakietu wirtual-
nego dostarczanego przez inne pakiety. Nowsze wersje pakietu mogą powodować konflikty
mimo deklaracji o zastępowaniu innych pakietów lub dostarczaniu funkcjonalności oryginalnego
pakietu. Przykładowo: jeżeli kilka pakietów zostanie połączonych w jeden i pozostałe staną się
zbędne, zaawansowany system zarządzania pakietami powinien śledzić zmiany w danych dotyczą-
cych zależności i właściwie zareagować w trakcie procesu uaktualniania. Oprócz tego zaawan-
sowane systemy zarządzania pakietami dają użytkownikom możliwość przeprowadzania strate-
gicznych inteligentnych uaktualnień każdego pakietu w systemie do najnowszej dostępnej wersji
przy użyciu danych zadeklarowanych w zależnościach pakietu.
Dla niektórych użytkowników jeszcze bardziej ekscytującą możliwością jest śledzenie opracowy-
wanych właśnie wersji systemu operacyjnego GNU/Linux i jego uaktualnianie każdego dnia do
najnowszej dostępnej wersji. System zarządzania pakietami może określić bezpieczny sposób
uaktualnienia i następnie je przeprowadzić. W trakcie uaktualniania zmiany wersji ABI i API
również mogą być obsłużone automatycznie, ponieważ system odmówi przeprowadzenia pełnej
aktualizacji biblioteki, jeśli wszystkie pakiety zainstalowane w systemie i zależne od danej biblio-
teki współdzielonej nie będą mogły być uaktualnione jednocześnie. System nie musi więc za-
wierać lub śledzić wielu wersji biblioteki współdzielonej.
Pakiety systemu Debian
Jak już wcześniej wspomniano, projekt Ubuntu jest zbudowany na bazie dystrybucji GNU/Linux
Debian. Wśród wielu innych technologicznych spuścizn system Ubuntu odziedziczył także sys-
tem pakietów Debiana. W rzeczywistości wielu głównych programistów zaangażowanych na
Pakiety systemu Debian 97
samym początku w projekt Ubuntu preferowało system pakietów Debiana, gdyż stanowił on
atrakcyjny punkt wyjścia i wyróżniał się wśród wielu innych dystrybucji GNU/Linux. Z tego
powodu niemal wszystkie aspekty zarządzania pakietami począwszy od formatów aż po na-
rzędzia są identyczne w projektach Debian i Ubuntu. W wielu przypadkach niezmodyfiko-
wany pakiet Debian może być po prostu zainstalowany w Ubuntu. W niemal wszystkich sytu-
acjach niezmodyfikowany pakiet kodu zródłowego Debiana może być zbudowany w systemie
Ubuntu. Tak więc pierwszym krokiem będzie tutaj dokładne omówienie formatu Ubuntu DEB,
aby Czytelnik zrozumiał anatomię pakietu oraz sposób implementacji funkcji przedstawionych
w poprzednich sekcjach.
Pakiety kodu zródłowego
Pakiety DEB zawierające kod zródłowy są zwykle wyrażone w postaci formatu składającego się
z dwóch lub trzech plików, choć równie dobrze pakiety mogą składać się ze znacznie większej
liczby plików. Oznacza to, że sam pakiet zawiera pewną liczbę plików, a pobranie pakietu kodu
zródłowego może w rzeczywistości wymagać pobrania wielu różnych, małych plików. Pakiety
kodu zródłowego mogą być sklasyfikowane jako rodzime lub nierodzime pakiety DEB. Różnica
między nimi polega na tym, że rodzimy DEB to pakiet oprogramowania, gdzie wersje upstream
i w pakiecie DEB absolutnie się nie różnią. W większości przypadków rodzime pakiety są cha-
rakterystyczne dla Ubuntu, Debiana lub innej dystrybucji bazującej na Debianie. Innymi słowy,
[ Pobierz całość w formacie PDF ]