Rozdział 1. Ogólne

Spis treści

1.1. Budowa systemu pakietów

Pakiet APT składa się z dwóch części: z metody APT programu dselect oraz z programu apt-get będącego interfejsem linii poleceń. Obie części pozwalają na instalowanie i usuwanie pakietów oraz na pobieranie nowych pakietów z Internetu.

System pakietów Debiana zawiera sporą ilość informacji skojarzonych z każdym pakietem, zapewniających integralność pakietów w systemie. Najbardziej widoczną cechą systemu pakietów jest system zależności.

System zależności pozwala poszczególnym programom używać wspólnych elementów systemu, takich jak biblioteki. Upraszcza także umieszczanie rzadko używanych części programów w oddzielnych pakietach, tak aby zmniejszyć liczbę pakietów instalowanych przez przeciętnego użytkownika. Pozwala także wybierać programy odpowiedzialne za dostarczanie poczty, serwery X-ów itp.

Pierwszym krokiem potrzebnym do zrozumienia systemu zależności jest zrozumienie koncepcji prostej zależności. Prosta zależność oznacza, że dany pakiet do poprawnego działania wymaga zainstalowania innego pakietu.

Na przykład mailcrypt jest rozszerzeniem edytora emacs, umożliwiającym szyfrowanie e-maili za pomocą programu GPG. Bez zainstalowanego pakietu GPG, mailcrypt jest bezużyteczny, dlatego mailcrypt zawiera prostą zależność od GPG. Ma także prostą zależność od pakietu emacs, ponieważ jest rozszerzeniem emacsa, więc i bez emacsa jest równie bezużyteczny.

Inną ważną zależnością, którą należy zrozumieć, jest konflikt. Oznacza to, że dany pakiet może nie działać albo może być szkodliwy dla systemu, jeżeli razem z nim jest zainstalowany inny pakiet. Jako przykład rozważmy program odpowiedzialny za dostarczanie poczty (ang. "mail transport agent") taki jak sendmail, exim lub qmail. Nie jest możliwe jednoczesne zainstalowanie dwóch takich programów, ponieważ oba musiałyby nasłuchiwać na tym samym porcie sieciowym, żeby odebrać e-maile. Próba zainstalowanie obu poważnie uszkodzi system. Dlatego też wszystkie programy obsługi dostarczania poczty są w konflikcie ze wszystkimi innymi programami obsługującymi dostarczanie poczty.

Dodatkową komplikacją jest możliwość, że dany pakiet może udawać inny pakiet. Proszę rozważyć jako przykład, że exim i sendmail praktycznie rzecz biorąc są identyczne - oba dostarczają pocztę, oba mają wspólny interfejs. Dlatego też system pakietów daje im możliwość zadeklarowania, że oba są programami obsługującymi dostarczanie poczty.Tak więc zarówno exim, jak i sendmail deklarują, że dostarczają pakiet o nazwie mail-transport-agent, od którego mogą zależeć pakiety, wymagające do swojego działania programu obsługi poczty. Może to być bardzo mylące podczas próby ręcznego naprawiania zależności pakietów.

W dowolnym czasie pojedyncza zależność może być lub nie być spełniona przez obecnie zainstalowane pakiety. ATP próbuje rozwiązać zależności używając pewnej liczby algorytmów pomagających w wyborze pakietów do zainstalowania.