Zarządzanie pakietami Linuksa za pomocą Yum, RPM, Apt, Dpkg, Aptitude i Zypper - część 9
W sierpniu zeszłego roku Linux Foundation ogłosiła przyznanie certyfikatu LFCS (Linux Foundation Certified Sysadmin), wspaniałej szansy dla administratorów systemów na całym świecie na wykazanie się poprzez egzamin oparty na wydajności, że potrafią są w stanie odnieść sukces w zakresie ogólnego wsparcia operacyjnego dla systemów Linux. Certyfikowany administrator systemu Linux Foundation posiada specjalistyczną wiedzę niezbędną do zapewnienia skutecznego wsparcia systemu, rozwiązywania problemów i monitorowania pierwszego poziomu, łącznie z eskalacją problemów, jeśli zajdzie taka potrzeba, do zespołów wsparcia technicznego.
Obejrzyj poniższy film objaśniający program certyfikacji Linux Foundation.
Ten artykuł jest częścią 9 z długiej serii 10 samouczków. Dzisiaj w tym artykule poprowadzimy Cię na temat zarządzania pakietami Linux, które są wymagane do egzaminu certyfikacyjnego LFCS.
Zarządzanie pakietami
Krótko mówiąc, zarządzanie pakietami to metoda instalowania i utrzymywania (co obejmuje aktualizację i prawdopodobnie także usuwanie) oprogramowania w systemie.
Na początku Linuksa programy były dystrybuowane jedynie jako kod źródłowy wraz z wymaganymi stronami podręcznika, niezbędnymi plikami konfiguracyjnymi i nie tylko. Obecnie większość dystrybutorów Linuksa domyślnie korzysta z gotowych programów lub zestawów programów zwanych pakietami, które są prezentowane użytkownikom gotowe do instalacji w tej dystrybucji. Jednak jednym z cudów Linuksa jest nadal możliwość uzyskania kodu źródłowego programu w celu jego przestudiowania, ulepszenia i skompilowania.
Jak działają systemy zarządzania pakietami
Jeśli określony pakiet wymaga określonego zasobu, takiego jak biblioteka współdzielona lub inny pakiet, mówi się, że ma zależność. Wszystkie nowoczesne systemy zarządzania pakietami zapewniają pewną metodę rozwiązywania zależności, która gwarantuje, że podczas instalacji pakietu zostaną zainstalowane również wszystkie jego zależności.
Systemy pakowania
Prawie całe oprogramowanie instalowane w nowoczesnym systemie Linux można znaleźć w Internecie. Może być dostarczony przez dostawcę dystrybucji za pośrednictwem centralnych repozytoriów (które mogą zawierać kilka tysięcy pakietów, z których każdy został specjalnie zbudowany, przetestowany i utrzymywany na potrzeby dystrybucji) lub być dostępny w kodzie źródłowym, który można pobrać i zainstalować ręcznie .
Ponieważ różne rodziny dystrybucji używają różnych systemów pakowania (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm zbudowany specjalnie dla openSUSE), pakiet przeznaczony dla jednej dystrybucji nie będzie kompatybilny z inną dystrybucją. Jednak większość dystrybucji prawdopodobnie należy do jednej z trzech rodzin dystrybucji objętych certyfikatem LFCS.
Narzędzia pakietowe wysokiego i niskiego poziomu
Aby skutecznie wykonać zadanie zarządzania pakietami, musisz mieć świadomość, że będziesz mieć do dyspozycji dwa typy narzędzi: narzędzia niskiego poziomu (które w backendzie obsługują rzeczywistą instalację, aktualizację i usuwanie plików pakietów) oraz narzędzia wysokiego poziomu (które odpowiadają za zapewnienie realizacji zadań rozwiązywania zależności i wyszukiwania metadanych - „danych o danych”).
DISTRIBUTION | LOW-LEVEL TOOL | HIGH-LEVEL TOOL |
Debian and derivatives | dpkg | apt-get / aptitude |
CentOS | rpm | yum |
openSUSE | rpm | zypper |
Zobaczmy opis narzędzi niskiego i wysokiego poziomu.
dpkg to niskopoziomowy menedżer pakietów dla systemów opartych na Debianie. Może instalować, usuwać, udostępniać informacje i budować pakiety *.deb, ale nie może automatycznie pobierać i instalować odpowiadających im zależności.
Przeczytaj więcej: 15 przykładów poleceń dpkg
apt-get to menedżer pakietów wysokiego poziomu dla Debiana i jego pochodnych, zapewniający prosty sposób pobierania i instalowania pakietów, w tym rozwiązywania zależności, z wielu źródeł za pomocą wiersza poleceń. W przeciwieństwie do dpkg, apt-get nie działa bezpośrednio z plikami *.deb, ale z właściwą nazwą pakietu.
Przeczytaj więcej: 25 przykładów poleceń apt-get
aptitude to kolejny menedżer pakietów wysokiego poziomu dla systemów opartych na Debianie, którego można używać do wykonywania zadań zarządzania (instalowanie, aktualizowanie i usuwanie pakietów, a także automatyczna obsługa rozwiązywania zależności) w szybki i łatwy sposób . Zapewnia tę samą funkcjonalność co apt-get i dodatkowe, takie jak oferowanie dostępu do kilku wersji pakietu.
rpm to system zarządzania pakietami używany w dystrybucjach zgodnych z Linux Standard Base (LSB) do niskopoziomowej obsługi pakietów. Podobnie jak dpkg może wysyłać zapytania, instalować, weryfikować, aktualizować i usuwać pakiety i jest częściej używany w dystrybucjach opartych na Fedorze, takich jak RHEL i CentOS.
Przeczytaj więcej: Przykłady poleceń 20 obr./min
mniam dodaje funkcjonalność automatycznych aktualizacji i zarządzania pakietami z zarządzaniem zależnościami do systemów opartych na RPM. Jako narzędzie wysokiego poziomu, takie jak apt-get lub aptitude, yum współpracuje z repozytoriami.
Przeczytaj więcej: 20 przykładów poleceń yum
Typowe użycie narzędzi niskiego poziomu
Najczęstsze zadania, które będziesz wykonywać za pomocą narzędzi niskiego poziomu, są następujące:
1. Instalacja pakietu ze skompilowanego pliku (*.deb lub *.rpm).
Wadą tej metody instalacji jest brak możliwości rozwiązania zależności. Najprawdopodobniej zdecydujesz się zainstalować pakiet ze skompilowanego pliku, gdy taki pakiet nie jest dostępny w repozytoriach dystrybucji i dlatego nie można go pobrać ani zainstalować za pomocą narzędzia wysokiego poziomu. Ponieważ narzędzia niskiego poziomu nie rozwiązują zależności, ich działanie zakończy się błędem, jeśli spróbujemy zainstalować pakiet z niespełnionymi zależnościami.
dpkg -i file.deb [Debian and derivative]
rpm -i file.rpm [CentOS / openSUSE]
Uwaga: nie próbuj instalować w CentOS pliku *.rpm, który został stworzony dla openSUSE i odwrotnie!
2. Aktualizacja pakietu ze skompilowanego pliku
Ponownie, ręcznie zaktualizujesz zainstalowany pakiet tylko wtedy, gdy nie jest on dostępny w centralnych repozytoriach.
dpkg -i file.deb [Debian and derivative]
rpm -U file.rpm [CentOS / openSUSE]
3. Lista zainstalowanych pakietów
Kiedy po raz pierwszy zdobędziesz już działający system, prawdopodobnie będziesz chciał wiedzieć, jakie pakiety są zainstalowane.
dpkg -l [Debian and derivative]
rpm -qa [CentOS / openSUSE]
Jeśli chcesz wiedzieć, czy zainstalowany jest konkretny pakiet, możesz przesłać dane wyjściowe powyższych poleceń do grep, jak wyjaśniono w manipulacji plikami w systemie Linux – część 1 tej serii. Załóżmy, że musimy sprawdzić, czy pakiet mysql-common jest zainstalowany w systemie Ubuntu.
dpkg -l | grep mysql-common
Inny sposób sprawdzenia, czy pakiet jest zainstalowany.
dpkg --status package_name [Debian and derivative]
rpm -q package_name [CentOS / openSUSE]
Na przykład sprawdźmy, czy w naszym systemie jest zainstalowany pakiet sysdig.
rpm -qa | grep sysdig
4. Sprawdzanie, który pakiet zainstalował plik
dpkg --search file_name
rpm -qf file_name
Na przykład, który pakiet zainstalował plik pw_dict.hwm?
rpm -qf /usr/share/cracklib/pw_dict.hwm
Typowe użycie narzędzi wysokiego poziomu
Najczęstsze zadania, które będziesz wykonywać za pomocą narzędzi wysokiego poziomu, są następujące.
1. Wyszukiwanie paczki
aptitude update zaktualizuje listę dostępnych pakietów, a aptitude search przeprowadzi faktyczne wyszukiwanie nazwa_pakietu.
aptitude update && aptitude search package_name
W opcji wyszukiwania wszystkich yum będzie szukać nazwy_pakietu nie tylko w nazwach pakietów, ale także w opisach pakietów.
yum search package_name
yum search all package_name
yum whatprovides “*/package_name”
Załóżmy, że potrzebujemy pliku o nazwie sysdig. Aby poznać pakiet, który będziemy musieli zainstalować, uruchommy go.
yum whatprovides “*/sysdig”
whatprovides mówi yum, aby przeszukał pakiet, po czym dostarczy plik pasujący do powyższego wyrażenia regularnego.
zypper refresh && zypper search package_name [On openSUSE]
2. Instalacja pakietu z repozytorium
Podczas instalowania pakietu może zostać wyświetlony monit o potwierdzenie instalacji, gdy menedżer pakietów rozwiąże wszystkie zależności. Należy pamiętać, że uruchamianie aktualizacji lub odświeżania (w zależności od używanego menedżera pakietów) nie jest absolutnie konieczne, ale utrzymywanie aktualności zainstalowanych pakietów jest dobrą praktyką administratora systemu ze względów bezpieczeństwa i zależności.
aptitude update && aptitude install package_name [Debian and derivatives]
yum update && yum install package_name [CentOS]
zypper refresh && zypper install package_name [openSUSE]
3. Usuwanie paczki
Opcja usuń odinstaluje pakiet, ale pozostawi pliki konfiguracyjne nienaruszone, natomiast czyszczenie usunie wszelkie ślady programu z systemu.
# aptitude usuń/usuń nazwa_pakietu
# mniam, usuń nazwę_pakietu
---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---
zypper remove -package_name
Większość (jeśli nie wszystkie) menedżerów pakietów domyślnie wyświetli monit, jeśli masz pewność, że chcesz kontynuować dezinstalację przed jej faktycznym wykonaniem. Przeczytaj więc uważnie komunikaty wyświetlane na ekranie, aby uniknąć niepotrzebnych problemów!
4. Wyświetlanie informacji o przesyłce
Poniższe polecenie wyświetli informację o pakiecie urodzinowym.
aptitude show birthday
yum info birthday
zypper info birthday
Streszczenie
Zarządzanie pakietami to coś, czego jako administrator systemu nie możesz zamiatać pod dywan. Powinieneś być przygotowany na skorzystanie z narzędzi opisanych w tym artykule w każdej chwili. Mam nadzieję, że okaże się przydatny w przygotowaniach do egzaminu LFCS i codziennych zadaniach. Zachęcamy do pozostawienia komentarzy lub pytań poniżej. Z przyjemnością skontaktujemy się z Tobą tak szybko, jak to możliwe.