Menedżer pakietów

Ilustracja przedstawiająca menedżera pakietów używanego do pobierania nowego oprogramowania. Czynności ręczne mogą obejmować akceptację umowy licencyjnej lub wybór niektórych opcji konfiguracyjnych specyficznych dla pakietu.

Pakiet oprogramowania to plik archiwalny zawierający program komputerowy oraz metadane niezbędne do jego wdrożenia. Program komputerowy może być w postaci kodu źródłowego, który musi być najpierw skompilowany i zbudowany. Metadane pakietu obejmują opis pakietu, wersję pakietu oraz zależności (inne pakiety, które muszą być wcześniej zainstalowane).

Menedżerowie pakietów mają za zadanie wyszukiwanie, instalowanie, utrzymywanie lub odinstalowywanie pakietów oprogramowania na polecenie użytkownika. Typowe funkcje systemu zarządzania pakietami obejmują:

  • Współpracę z archiwizatorami plików w celu wyodrębnienia archiwów pakietów
  • Zapewnienie integralności i autentyczności pakietów poprzez weryfikację ich sum kontrolnych i certyfikatów cyfrowych, odpowiednio
  • Wyszukiwanie, pobieranie, instalowanie lub aktualizowanie istniejącego oprogramowania z repozytorium oprogramowania lub sklepu z aplikacjami
  • Grupowanie pakietów według funkcji w celu zmniejszenia dezorientacji użytkownika
  • Zarządzanie zależnościami w celu zapewnienia, że pakiet jest instalowany ze wszystkimi pakietami, których wymaga, unikając w ten sposób „piekła zależności”

Wyzwania związane z bibliotekami współdzielonymiEdit

Systemy komputerowe, które polegają na dynamicznym łączeniu bibliotek, zamiast statycznego łączenia bibliotek, współdzielą wykonywalne biblioteki instrukcji maszynowych pomiędzy pakietami i aplikacjami. W tych systemach, złożone zależności pomiędzy różnymi pakietami wymagającymi różnych wersji bibliotek powodują, że pojawia się wyzwanie potocznie nazywane „piekłem zależności”. W systemach Microsoft Windows jest to również nazywane „piekłem DLL”, gdy pracujemy z dynamicznie łączonymi bibliotekami. Dobre zarządzanie pakietami jest kluczowe w tych systemach. System Framework z OPENSTEP był próbą rozwiązania tego problemu, pozwalając na jednoczesną instalację wielu wersji bibliotek oraz na określenie przez pakiety oprogramowania, z którą wersją są powiązane.

Końcówki frontów dla lokalnie kompilowanych pakietówEdit

Administratorzy systemu mogą instalować i utrzymywać oprogramowanie używając narzędzi innych niż oprogramowanie do zarządzania pakietami. Na przykład, lokalny administrator może pobrać niepakowany kod źródłowy, skompilować go i zainstalować. Może to spowodować, że stan lokalnego systemu przestanie być zsynchronizowany ze stanem bazy danych menedżera pakietów. Lokalny administrator będzie musiał podjąć dodatkowe środki, takie jak ręczne zarządzanie niektórymi zależnościami lub zintegrowanie zmian z menedżerem pakietów.

Dostępne są narzędzia zapewniające, że lokalnie skompilowane pakiety są zintegrowane z zarządzaniem pakietami. Dla dystrybucji opartych na plikach .deb i .rpm, jak również Slackware Linux, istnieje CheckInstall, a dla systemów opartych na recepturach, takich jak Gentoo Linux i systemów hybrydowych, takich jak Arch Linux, możliwe jest napisanie najpierw receptury, która następnie zapewnia, że pakiet pasuje do lokalnej bazy pakietów.

Utrzymanie konfiguracjiEdit

Szczególnie kłopotliwe przy aktualizacjach oprogramowania są aktualizacje plików konfiguracyjnych. Ponieważ menedżery pakietów, przynajmniej w systemach Unix, powstały jako rozszerzenia narzędzi do archiwizacji plików, mogą one zazwyczaj tylko nadpisywać lub zachowywać pliki konfiguracyjne, a nie stosować do nich reguły. Istnieją wyjątki od tej zasady, które zwykle dotyczą konfiguracji jądra (które, jeśli zostanie uszkodzone, spowoduje, że komputer będzie niezdatny do użytku po ponownym uruchomieniu). Problemy mogą być spowodowane, jeśli zmieni się format plików konfiguracyjnych; na przykład, jeśli stary plik konfiguracyjny nie wyłącza jawnie nowych opcji, które powinny być wyłączone. Niektóre menedżery pakietów, takie jak dpkg Debiana, pozwalają na konfigurację podczas instalacji. W innych sytuacjach pożądane jest zainstalowanie pakietów z domyślną konfiguracją, a następnie nadpisanie tej konfiguracji, na przykład w instalacjach bezgłowych na dużej liczbie komputerów. Ten rodzaj wstępnie skonfigurowanej instalacji jest również obsługiwany przez dpkg.

RepozytoriaEdit

Aby dać użytkownikom większą kontrolę nad rodzajami oprogramowania, które pozwalają zainstalować w swoim systemie (i czasami z powodów prawnych lub ze względu na wygodę po stronie dystrybutorów), oprogramowanie jest często pobierane z wielu repozytoriów oprogramowania.

Wstrzymywanie aktualizacjiEdit

Gdy użytkownik wchodzi w interakcję z oprogramowaniem zarządzającym pakietami, by wywołać aktualizację, zwyczajowo przedstawia się użytkownikowi listę działań do wykonania (zwykle listę pakietów do aktualizacji, i ewentualnie podaje się numery starej i nowej wersji), i pozwala użytkownikowi albo zaakceptować aktualizację zbiorczo, albo wybrać poszczególne pakiety do aktualizacji. Wiele menedżerów pakietów można skonfigurować tak, by nigdy nie aktualizowały pewnych pakietów, lub by aktualizowały je tylko wtedy, gdy w poprzedniej wersji zostaną znalezione krytyczne luki lub niestabilności, zgodnie z definicją pakującego oprogramowanie. Ten proces jest czasami nazywany version pinning.

Na przykład:

  • yum wspiera to za pomocą składni exclude=openoffice*
  • pacman z IgnorePkg= openoffice (aby pominąć aktualizację openoffice w obu przypadkach)
  • dpkg i dselect wspierają to częściowo poprzez flagę hold. w wyborze pakietów
  • APT rozszerza flagę wstrzymania poprzez złożony mechanizm „pinning” (Użytkownicy mogą również umieścić pakiet na czarnej liście)
  • aptitude posiada flagi „wstrzymaj” i „zabroń”
  • portage wspiera to poprzez pakiet.plik konfiguracyjny maski

Kaskadowe usuwanie pakietówEdit

Niektóre z bardziej zaawansowanych funkcji zarządzania pakietami oferują „kaskadowe usuwanie pakietów”, w którym wszystkie pakiety zależne od pakietu docelowego i wszystkie pakiety, od których zależy tylko pakiet docelowy, są również usuwane.

Porównanie poleceńEdit

Chociaż polecenia są specyficzne dla każdego konkretnego menedżera pakietów, są w dużym stopniu przetłumaczalne, ponieważ większość menedżerów pakietów oferuje podobne funkcje.

.

Akcja zypper pacman apt dnf (yum) portage
install package zypper w PKG pacman -.S PACKAGE apt install PACKAGE dnf install PACKAGE emerge PACKAGE
remove package zypper rm -.RU PKG pacman -R PACKAGE apt remove PACKAGE dnf remove --nodeps PACKAGE emerge -.C PACKAGE lub
emerge --unmerge PACKAGE
remove package+orphans zypper rm -u --force-resolution PKG pacman -Rs PACKAGE apt autoremove PACKAGE dnf remove PACKAGE emerge - -.c PACKAGE lub
emerge --depclean PACKAGE
update software database zypper ref pacman - -.Sy apt update dnf check-update emerge -.-sync
show updatable packages zypper lu pacman -Qu apt list -.-upgradable dnf check-update emerge -avtuDN --with-bdeps=y @world lub
emerge --update --.pretend @world
delete orphans+config zypper rm -u pacman -Rsn $(pacman -.-orphaned --unneededed pacman -Qdt package-cleanup --quiet --leaves --exclude-bin emerge -.caD lub
emerge --depclean --pretend
update all zypper up pacman -.Syu apt upgrade dnf update emerge --update --deep --with-bdeps=y @world

Wiki Arch Linux Pacman/Rosetta oferuje obszerny przegląd.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.