Z brzytwą na repozytoria

Koncepcja linuksowych repozytoriów z oprogramowaniem przetrwała próbę czasu i z biegiem lat weszła na wyposażenie wszystkich systemów operacyjnych w których możemy decydować o posiadanym oprogramowaniu. Repozytoria (zwane sklepami) spotkamy dziś w Androidzie, iOS, OS X a nawet i w Windowsie. Podczas gdy użytkownicy wiodącego systemu czekali na proste i automatyczne instalowanie programów (a nie ręczne wydłubywanie ich z internetu), całe pokolenia użytkowników Linuksa przez dziesięciolecia walczyły o zgrabne, funkcjonalne oraz graficzne menadżery pakietów. Gdy w zasadzie już każda dystrybucja posiada takie narzędzia w zestawie, okazało się nagle, że… Tak naprawdę wielu osobom szkoda czasu na „klikalne” instalowanie lub usuwanie pakietów z systemu. Trend powrótu do korzeni i obsługa oprogramowania z poziomu terminala nie jest jakimś wyzwaniem, gdy dysponuje się poręczną ściągą z parametrami.

Obraz sielankowego instalowania programu za pomocą pojedynczego polecenia zakłóca jeden niuans – mianowicie mnogość menadżerów pakietów w dystrybucjach. Gdy jednak przyjrzeć się temu problemowi z bliska, okaże się, że tak naprawdę w świecie linuksowym funkcjonuje pięć – sześć podstawowym menadżerów paczek w ramach mainstreamowych dystrybucji. Wszystkie pozostałe systemy budowane z wykorzystaniem któregoś z liderów dziedziczą bowiem również system paczek. Zatem, wystarczy sprawnie poruszać się w realiach Debiana, Fedory, openSUSE, Arch Linuksa i dzięki tej wiedzy nie straszne nam będzie 90% obecnych na rynku dystrybucji.

Zasadniczo menadżery paczek (i same paczki) możemy podzielić na:

  • Paczki deb – obsługiwane przez dpkg, apt. System paczek wywodzący się z Debiana, spotykany w dystrybucjach Ubuntu, Mint i pochodnych,
  • Paczki rpm – obsługiwane przez rpm, dnf/yum (Fedora, CentOS, ReDHat), zypper (openSUSE) i pochodne,
  • Paczki tar.xz – obsługiwane przez pacman, yaourt, przynależne dystrybucji Arch Linux i Manjaro, Antergos i pochodne.

Żeby było ciekawiej, system obsługujący np. paczki rpm niekoniecznie obsłuży paczki rpm z innej dystrybucji – oczywiście w przypadku, gdybyśmy próbowali taką paczkę na siłę i ręcznie wmontować w nasz system (np. rpm z RedHata w openSUSE). Jeżeli trzymamy się repozytoriów i zależności rozwiązywanych automatycznie przez menadżer pakietów możemy spać spokojnie (tzn. nic z Ubuntu nie trafi do naszego Debiana i tak dalej).

Zatem, jak poradzić sobie z podstawami takimi jak instalacja, wyszukiwanie, aktualizacja? Wystarczy wykuć na blachę poniższe tabele. Z racji ich skromnej przestrzeni pomijam obsługę paczek w Slackware i Gentoo, które to jednak są na tyle specjalistycznymi dystrybucjami, że żadnego z ich użytkowników raczej niczego nowego nie nauczę.

UWAGA – niskopoziomowe operacje na bazie paczek i samych paczkach (rpm, dpkg) wymagają konsultacji z bardziej fachowymi poradnikami, gdyż nieodpowiednio użyte mogą doprowadzić do niemocy systemu i stanów lękowych u użytkownika. Użytkowniku, pamiętaj – nic na siłę dopóki działa automatyka (apt, zypper, dnf, pacman).

Zarządzanie paczkami

Zadanie apt (deb) dnf (rpm) zypper (rpm) pacman (tar.xz)
Instalowanie apt-get install nazwa dnf install nazwa zypper install nazwa pacman -S nazwa
Aktualizacja apt-get install nazwa dnf install nazwa zypper update -t package nazwa pacman -S nazwa
Usuwanie apt-get remove nazwa dnf remove nazwa zypper remove nazwa pacman -R nazwa
Lokalnie dpkg -i plik dnf install plik zypper install plik pacman -U plik

Wyszukiwanie pakietów

Zadanie apt (deb) dnf (rpm) zypper (rpm) pacman (tar.xz)
Wg nazwy apt-cache search nazwa dnf search nazwa zypper search nazwa pacman -Ss nazwa
Wg wzoru apt-cache search wzór dnf search wzór zypper search -t pattern wzór pacman -Ss wzór
Wg nazwy pliku apt-file search ścieżka dnf provides plik zypper wp plik pkgfile plik
Zainstalowane dpkg -l dnf list installed zypper search -is pacman -Q
Informacje apt-cache show nazwa dnf info nazwa zypper info nazwa pacman -[Q|S]i nazwa

Aktualizowanie systemu

Zadanie apt (deb) dnf (rpm) zypper (rpm) pacman (tar.xz)
Lista pakietów apt-get update dnf clean expire-cache && dnf check-update zypper refresh pacman -Sy
System apt-get upgrade dnf upgrade zypper update pacman -Suy

Zarządzanie repozytoriami

Zadanie apt (deb) dnf (rpm) zypper (rpm) pacman (tar.xz)
Lista cat /etc/apt/sources.list dnf repolist zypper repos cat /etc/pacman.conf
Dodawanie edytuj /etc/apt/sources.list dodaj do /etc/yum.repos.d/ zypper addrepo URI name edytuj /etc/pacman.conf
Usuwanie edytuj /etc/apt/sources.list usuń z /etc/yum.repos.d/ zypper removerepo name edytuj /etc/pacman.conf