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 |