Package manager

Oprogramowanie instalujące, aktualizujące i usuwające pakiety w systemie wraz z zależnościami (np. apt, dnf, pacman). Centralizuje zarządzanie programami.

Menedżer pakietów (ang. package manager) to program, który instaluje, aktualizuje i usuwa oprogramowanie w systemie, pilnując przy tym zależności i wersji. Zamiast ściągać kod ze strony, kompilować go ręcznie i modlić się, że nic nie brakuje, wpisujesz jedną komendę, a menedżer sam pobiera gotowy pakiet z repozytorium, dokłada wszystkie biblioteki, których ten pakiet potrzebuje, i melduje, że gotowe. To centralny punkt zarządzania całym softwarem na maszynie.

Jak to działa

Menedżer pakietów rozdziela dwie rzeczy: pakiety (gotowe, spakowane programy z metadanymi) i repozytoria (serwery, z których te pakiety lecą). Lokalnie trzyma bazę danych tego, co masz zainstalowane i w jakiej wersji. Kiedy prosisz o instalację, menedżer sprawdza w tej bazie, rozwiązuje drzewo zależności (czyli: „żeby zainstalować A, potrzebuję jeszcze B i C”), pobiera brakujące elementy i konfiguruje wszystko w odpowiedniej kolejności.

Druga supermoc to aktualizacje. Jedna komenda potrafi podbić wersje wszystkich programów naraz, łącznie z łatkami bezpieczeństwa. Dlatego na Linuksie rzadko klikasz „pobierz nowszą wersję” w każdej aplikacji z osobna, tak jak na Windowsie sprzed lat.

Przykład z praktyki

Na Ubuntu/Debianie królem jest apt. Typowy dzień wygląda tak:

  • sudo apt update — odśwież listę dostępnych pakietów z repozytoriów,
  • sudo apt install nginx — zainstaluj serwer nginx wraz z zależnościami,
  • sudo apt upgrade — zaktualizuj wszystko, co da się zaktualizować,
  • sudo apt remove nginx — usuń pakiet.

Na Fedorze/RHEL robisz to samo przez dnf (np. sudo dnf install nginx), a na Arch Linux przez pacman (sudo pacman -S nginx). Różnią się składnią i formatem pakietów (.deb kontra .rpm), ale idea jest identyczna.

Częste błędy i mity

„Zainstaluję ręcznie, będzie szybciej.” Zwykle skończysz z rozjechanymi zależnościami, których menedżer już nie ogarnia, bo nie wie o plikach, które wrzuciłeś obok jego bazy. Trzymaj się repozytoriów.

Mieszanie repozytoriów i źródeł. Dorzucanie losowych zewnętrznych repo potrafi rozwalić system przy najbliższym upgrade. Dodawaj tylko zaufane.

Pamiętaj też, że menedżer pakietów systemu to nie to samo co menedżery dla języków programowania (npm, pip) — tamte zarządzają bibliotekami projektu, nie całym systemem.

Pojęcia powiązane

Repozytorium, zależności (dependencies), pakiet .deb i .rpm, apt, dnf, pacman, Snap i Flatpak (uniwersalne formaty pakietów), menedżery języków: npm i pip.