Miesięcznik informatyków i menedżerów IT sektora publicznego

Artur Pęczak

Menedżery pakietów w systemach linuksowych

System zarządzania pakietami, albo inaczej menedżer pakietów, automatyzuje procesy instalacji, konfiguracji, aktualizacji oraz usuwania oprogramowania w systemach Linux/UNIX. Podstawowe formaty pakietów w Linuksie to deb, RPM oraz tar/txz.

Dziedzictwo systemów zarządzania pakietami jest nierozerwalnie związane z początkami wydawania dystrybucji Linuksa. Trzy najstarsze – Debian, Red Hat i SLS/Slack­ware – na lata określiły sposób i format zarządzania pakietami, a dystrybucje budowane na bazie tych systemów z reguły przejmowały te same wzorce i narzędzia zarządzania oprogramowaniem. W rezultacie Debian i jego pochodne, czyli Ubuntu, Mint i Knoppix, oraz setki innych dystrybucji korzystają z systemu pakietu deb, podczas gdy w dystrybucjach opartych na Red Hat, takich jak Fedora, Cent­OS, ClearOS i Mageia, po dziś dzień stosuje się konkurencyjny mechanizm RPM. Pakiety RPM zastosowano również w SUSE Enterprise Linux (SLES) i jego otwartej implementacji OpenSUSE, która w linii prostej wywodzi się ze Slackware. To jeden z tych nielicznych wyjątków, gdzie autorzy dystrybucji zastosowali inny system zarządzania pakietami niż w pierwowzorze. Pakiety txz w Slackware (wcześniej tgz) to zwykłe archiwa tar spakowane programem xz, opatrzone dodatkowym opisem zawartości i skryptem instalacyjnym.

System zarządzania pakietami ułatwia i automatyzuje zarządzanie oprogramowaniem w systemie. W Debianie jest to zestaw narzędzi APT (Advanced Packaging Tool), który został zaprojektowany do obsługi plików .deb. Podstawowym narzędziem do zarządzania pakietami w dystrybucjach opartych na formacie RPM jest zaś yum (Yellowdog Updater, Modified) stosowany w Red Hat, Fedorze czy CentOS. SLES i openSUSE korzystają z silnika ZYpp i narzędzia wiersza poleceń Zypper oraz graficznych nakładek w postaci YaST i PackageKit. Oficjalne narzędzie do zarządzania pakietami slackpkg w Slackware nie śledzi zależności, co istotnie odróżnia go od konkurencyjnych menedżerów dla formatu deb i RPM. Lista ta nie jest pełna, bo w systemie Arch Linux spotkamy się z archiwami tar obsługiwanymi przez program Pacman, natomiast Gentoo, NetBSD i FreeBSD korzystają z mechanizmu portów i dedykowanych narzędzi do zarządzania nimi.

Pakiety i zależności

Oprogramowanie dostarczane jest w formie kodu źródłowego (source) lub pakietów binarnych (binary) gotowych do instalacji w systemie. Pakiet to skompresowane archiwum zawierające wszystkie pliki pojedynczej aplikacji potrzebne do jej zainstalowania i skonfigurowania na komputerze docelowym.

Pakiet zawiera instrukcję instalacji dla menedżera pakietów, w tym listę wymaganych bibliotek i narzędzi oraz skrypty instalacyjne, które pozwolą zainstalować pliki wykonywalne, biblioteki oraz dokumentację we właściwych folderach na dysku. Modularna budowa Linuksa wymusza, aby wielokrotnie używane komponenty systemu, takie jak biblioteki współdzielone i narzędzia, dostarczane były w formie odrębnych pakietów. Zadaniem menedżera jest zapewnienie wszystkich wymaganych pakietów (zależności), aby instalowana aplikacja mogła być uruchamiana poprawnie. Dzięki mechanizmowi zależności (dependencies) wraz z wybraną aplikacją z repozytoriów automatycznie instalowane są wszystkie wymagane biblioteki i narzędzia. Lista wymaganych pakietów wyświetlana jest na etapie instalacji. W celu sprawdzenia zależności wydajemy komendę yum deplist vim lub rpm -q --requires vim. Aby uzyskać podobny wynik w Debianie, należy posłużyć się poleceniem apt depends vim.

Repozytoria pakietów

Repozytorium to miejsce przechowywania i udostępniania pakietów oprogramowania, skąd mogą być pobierane i instalowane na komputerze. Mamy tutaj do czynienia z wydzielonym zasobem dyskowym, w którym składowane są pakiety dla różnych wersji systemu oraz różnych architektur sprzętowych. Poza Linuksem na podobnej zasadzie działają repozytoria dla konkretnych programów, np. CPAN dla Perla, a nawet sklepy z aplikacjami dla urządzeń mobilnych. Dzięki sformalizowanej strukturze wyszukiwanie oraz pobieranie pakietów z repozytorium możliwe jest za pomocą narzędzi nazywanych menedżerami pakietów. Zdecydowana większość to repozytoria udostępniane w internecie, choć w przeszłości oprogramowanie powszechnie instalowane było z płyt CD/DVD. Zasada działania takich repozytoriów jest identyczna, choć miejscem składowania pakietów jest tutaj nośnik optyczny.

Oficjalne repozytoria obsługiwane są przez wydawców dystrybucji i umożliwiają pobieranie pakietów dla konkretnego wydania systemu. Liczba pakietów w repozytorium zależy od dystrybucji. Debian zawiera ponad 51 000 skompilowanych i gotowych do instalacji paczek z oprogramowaniem. Typowa instalacja zakłada użycie minimalnego obrazu dystrybucji, a więc pozwalającego zainstalować na komputerze jedynie bazowy system, a następnie pobranie i zainstalowanie wymaganych pakietów oprogramowania z internetowych repozytoriów. Te same repozytoria wykorzystywane są później do dostarczania aktualizacji i łatek bezpieczeństwa. W internecie działają również repozytoria prowadzone przez osoby i firmy trzecie udostępniające oprogramowanie, które nie znalazło się w głównej linii wydania dystrybucji.

Jak już zostało wspomniane, Debian zawiera dziesiątki tysięcy pakietów w oficjalnych repozytoriach, dlatego w tych prowadzonych przez firmy trzecie w dużej mierze znajdują się mało popularne aplikacje oraz te rozpowszechniane na zasadach licencji innych niż open source. Na stronie wydawcy repozytorium są informacje, jakie wpisy dołączyć do pliku sources.list.

[...]

Autor zawodowo zajmuje się informatyką. Publikuje w magazynach komputerowych i serwisach internetowych.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma. Zapraszamy do składania zamówień na prenumeratę i numery archiwalne.
 
 

Polecamy

Biblioteka Informacja Publiczna

Specjalistyczne publikacje książkowe dla pracowników administracji publicznej

więcej