Wyszukiwanie w witrynie

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.