Wprowadzenie do zarządzania pakietami RPM/Yum

Wprowadzenie do zarządzania pakietami RPM/Yum
Red Hat Pakiet Manager to domyślne narzędzie do zarządzania pakietami typu open source zbudowane na podstawie licencji publicznej (GPU). System zarządzania pakietami jest przeznaczony dla wszystkich pochodnych Linux opartych na Red Hat, takich jak Fedora, Rhel i Centos. RPM ułatwia administratorom systemu z pięcioma podstawowymi trybami operacji zarządzania pakietami: Instalowanie, aktualizacja, usuwanie, zapytanie i weryfikacja pakietów.

Ponadto YellowDog Updater Modified (Yum) jest RPM What APT Pakiet Management Tool dla narzędzia DPKG w systemie opakowań Debian: Rozwiązuje problemy zależności pakietów RPM. W tym przewodniku krótko wprowadzimy mniam. Podczas gdy będziemy mieli dogłębne wprowadzenie i tło do systemu pakowania RPM dla rozkładów Red Hat Linux.

Tło

We wcześniejszych dniach Linux oprogramowanie/programy zostały uwzględnione w systemie poprzez kompilację kodu źródłowego na przebiegu binarne. Czasami zostały skompilowane w postaci pakietu znanego jako Tarballs zawierający wiele plików. Po instalacji oprogramowania z Tarball, wszystkie pliki wykonywalne, dokumenty, pliki konfiguracyjne i biblioteki rozprzestrzeniłyby się w systemie na odpowiednie katalogi.

Jednak ten sposób włączenia aplikacji ma swoje ograniczenia:

  • Niezdolność użytkownika do znalezienia dokumentów programu i plików konfiguracyjnych.
  • Trudność w znalezieniu wymaganych zależności programu.
  • Wymaga od użytkownika zlokalizowania i usunięcia każdego pliku programu indywidualnie.
  • Nie trzymał metadanych: stąd po instalacji użytkownicy nie byli świadomi wersji programu i innych szczegółów.

Od tego czasu Linux dystrybucje obejmowały długą drogę, dostarczając oprogramowanie do złożonych wstępnie budowanych programów zwanych pakietami. Stąd wszystkie dystrybucje Linux były zgodne z dwoma głównymi formatami opakowań, RPM i Deb. W tym artykule skupiamy się na systemie pakowania RPM.

Rozpoczęcie pracy

Systemy zarządzania pakietami RPM, Yum i Deb (dla dystrybucji Debian Linux) mają wiele podobieństw. Wszystkie mogą aktualizować, instalować, usuwać i aktualizować pakiety za pomocą obiektu wiersza poleceń.

W momencie instalacji Linux zainstalowano również dużą sekcję pakietów, która jest istotna dla zamierzonego użycia systemu. Jednak w pewnym momencie użytkownik musi dodać nowe pakiety, aby uzyskać dodatkowe funkcjonalność, zaktualizować bieżące pakiety lub usunąć pakiety, które nie są wymagane w systemach opartych na czerwonym kapeluszu.

Dowiedz się, w jaki sposób menedżerowie opakowań dla rozkładów Red Hat Linux wykonują powyższe zadania, w tym wyzwania związane z znalezieniem szczegółów pakietu lub poleceń zawierających pakiety.

RPM

Menedżer pakietów RPM oferuje główne polecenie o nazwie RPM, które zapewnia kilka opcji, aby umożliwić użytkownikowi znalezienie wszystkich informacji związanych z pakietem. Opcje RPM Oferty są pogrupowane w trzy główne kategorie:

  • Zainstaluj, aktualizuj i usuń pakiety
  • Aby zapytać o informacje związane z pakietem i weryfikować
  • wykonywać różne funkcje

W tym artykule omówimy dwie pierwsze opcje poleceń RPM. Mimo że może wykonywać podstawowe zadania związane z zarządzaniem pakietami, będąc pierwszym narzędziem, które zajmuje się opakowaniem RPM, RPM ma pewne główne ograniczenia:

Instalacja pakietu z RPM nie powiada się, jeśli zależność pakietu nie jest dostępna. Wymaga to ponadto użytkownika wyszukiwania tego pakietu zawiera komponent, który sam ma pewne zależności. Poza tym polecenia RPM wymagają od użytkownika wskazania lokalizacji pliku RPM.

Mniam

Wygodnym rozwiązaniem powyższych problemów jest mniam, który automatyzuje aktualizację pakietu i zarządzanie systemem RPM. Zapewnia również zarządzanie zależnością poprzez rozważanie pakietów RPM, nie jako indywidualne oprogramowanie, ale jako część systemu repozytorium.

Opakowanie RPM

Pakiet RPM to kombinacja plików konfiguracyjnych, poleceń, dokumentów w celu zapewnienia funkcji oprogramowania. Zawiera również metadane zawierające zawartość pakietu, skąd pochodziła lub zainstalowana, wersja i szczegóły zależności z innymi informacjami.

Przed przejściem do plików pakietów RPM sama nazwa pakietu udostępnia wiele szczegółów na temat oprogramowania. Aby znaleźć szczegóły pakietu już zainstalowanego w systemie, użyj RPM polecenie z -Qi Opcja informacji o zapytaniu:

[fedora@fedora] $ sudo rpm -qi nmap | mniej
Nazwa: nmap
Epoka: 3
Wersja: 7.80
Wydanie: 11.FC34
Architektura: x86_64
Data instalacji: Wt 29 czerwca 2021 12:45:34 PM EDT
Grupa: nieokreślony
Rozmiar: 24743073

Źródło RPM: NMAP-7.80-11.FC34.src.RPM
Data budowy: czw 11 marca 2021 12:34:34 EST
Host Build: BuildVM-X86-27.IAD2.Fedoraproject.org
Packager: Projekt Fedora

Wyjście powyższego polecenia zawiera szczegóły, z których program został pobrany, bezpośrednio z repozytorium Yum lub dowolnego medium instalacyjnego. Podobnie udostępnia również szczegóły w linii, kiedy program został zainstalowany, kto go zbudował, i kiedy został zainstalowany.

Oprogramowanie do Linux Distributions pochodzi z projektów open source znanych jako dostawcy oprogramowania Upstream. Udostępniają oprogramowanie z warunkami licencyjnymi. Dystrybucje budują kod źródłowy w binarie i konsolidują je z innymi odpowiednimi komponentami w pakiecie.

Skonsolidowany pakiet RPM jest podpisany w celu weryfikacji jego integralności i dodawany do repozytorium w korespondencji do dystrybucji i architektury. Wszystkie pakiety RPM pochodzą z repozytoria.

Lokalizacja pakietu

Lokalizacja plików repozytorium jest dostępna w systemie użytkownika w środku /etc/mniam.repozytorium.D/ katalog, jest to domyślna lokalizacja do przechowywania informacji o repozytorium. Jednak użytkownicy mogą również znaleźć lub określić te lokalizacje w pliku konfiguracyjnym głównego YUM /etc/mniam.conf.

[fedora@fedora] $ cat /etc /yum.Repo.D/Fedora.Repo | mniej

Plik repozytorium zawiera wiele kopii pakietów dystrybucyjnych dostępnych z różnych lokalizacji, znanych również jako lusterka. Stąd informuje Yum o najbliższej lokalizacji lustra do najszybszego pobierania. Plik repozytorium ma trzy sekcje, zawierające informacje o normalnych, debugowania, a na koniec pakiety źródłowe.

Podobnie jak Debian Packaging, RPM i Yum otrzymują szczegółowe informacje na temat zainstalowanych pakietów z lokalnej bazy danych. Menedżerowie pakietów odzyskują metadane (z /var/cache/mniam katalog) o pakietach wewnątrz lokalnej bazy danych z włączonych repozytoriów.

Pobierz RPM z repozytorium Yum

Aby zbadać zawartość RPMS lub zainstalować je w środowisku niezwiązanym z sieci, użytkownik może wymagać pobrania pakietu. Może to być możliwe za pomocą polecenia YumDownloader. Użyj polecenia YumDownloader z nazwą pakietu, aby pobrać go w bieżącym katalogu. Na przykład pobierz VIM Text-Editor w następujący sposób:

[fedora@fedora] $ yumdownloader vim

Lub użyj opcji -Solve, aby pobrać wymagane zależności dla pakietu.

[fedora@fedora] $ yumdownloader -Resolve vim

(4/6): vim-minimal-8.2.3046-1.FC34.x86_64.RPM 208 KB/s | 698 KB 00:03
(5/6): vim-common-8.2.3046-1.FC34.x86_64.RPM 727 KB/s | 6.6 MB 00:09

Instalacja RPM

Nawet jeśli RPM Polecenie może wykonywać podstawową instalację i aktualizacje, użytkownicy używają jej tylko wtedy, gdy pliki programowe są już w bieżącym katalogu i są gotowe do zainstalowania. Ponieważ VIM jest już dostępny w bieżącym katalogu, zainstaluj go za pośrednictwem RPM polecenie z -I Opcja z całą nazwą pakietu, w następujący sposób:

[fedora@fedora] $ yumdownloader-Resolve nmap-7.80-11.FC34.x86_64.RPM
[fedora@fedora] $ sudo rpm -i nmap -7.80-11.FC34.x86_64.RPM

Użyj -U opcja aktualizacji pakietu za pomocą -Hv Opcja wydrukowania znaków skrótu i ​​szczegółowych wyjściowych wyjściowych. Zauważ, że opcja -u instaluje pakiet ZSH, nawet gdy jest już zainstalowany.

[fedora@fedora] $ sudo rpm -uhv nmap -7.80-11.FC34.x86_64.RPM
Weryfikacja… ################################ [100%]
Przygotowanie… ############################### [100%]

RPM Polecenie oferuje inny rodzaj instalacji z -F (odświeżone) Opcje, które instalują pakiet tylko wtedy, gdy istnieje wcześniejsza wersja tego pakietu. Jest to pomocne w scenariuszu, gdy użytkownik chce zaktualizować wszystkie zainstalowane RPM w bieżącym katalogu.

[fedora@fedora] $ rpm -fhv *.RPM

Użytkownicy mogą dodać więcej opcji do dowolnej opcji instalacji, takich jak -Wymieńpkgs Opcja umożliwia ponowne zainstalowanie pakietu, jeśli jego element zostanie usunięty. podobnie, -Oldpackage Opcja umożliwia instalację starszej wersji pakietu.

[fedora@fedora] $ sudo rpm -uhv --replacepkgs emacs-common-24.4-3.FC21.x86_64.RPM
[fedora@fedora] $ sudo rpm -uhv --oldpackage zsh -4.3.10-7.El6.x86_64.RPM

Usunięcie RPM

Aby usunąć pakiety RPM, użyj -mi opcja polecenia RPM z nazwą podstawową opakowania. Wyjście do następującego polecenia wyświetla się, że w przeciwieństwie do usuwania pakietów w systemie opakowań Debian, nie pokazuje żadnych zależności usuniętych w trakcie procesu.

[fedora@fedora] $ sudo rpm -e nmap

Zauważ, że w przeciwieństwie do instalacji pakietów nie jest monitu przed usunięciem pakietu. Ale jeśli pakiet jest zależnością od innego programu, użytkownik otrzymuje komunikat o błędzie, ponieważ polecenie RPM nie usuwa go.

Zapytanie informacji o RPM

W tej sekcji omówimy różne sposoby zapytania o informacje za pośrednictwem RPM Komenda. W sekcji pakowania RPM uczymy się wyświetlać informacje o już zainstalowanym pakiecie przez -Qi Informacja. Podobnie polecenie RPM umożliwia również wyświetlanie plików, plików konfiguracyjnych i innej dokumentacji z pomocą -QL, -QC, I -Qd Opcje, w następujący sposób:

[fedora@fedora] $ rpm -ql nmap
/usr/bin/nmap
/usr/bin/nping
/usr/lib/.kompilacja
/usr/lib/.Build-Id/4e

[fedora@fedora] $ rpm -qc nmap
[fedora@fedora] $ rpm -qd nmap
/usr/share/doc/nmap/readme
/usr/share/doc/nmap/nmap.stosowanie.tekst
/usr/share/man/de/man1/nmap.1.GZ
/usr/share/man/es/man1/nmap.1.GZ

Pakiety RPM zawierają mnóstwo informacji, które można odzyskać za pomocą różnych flag. Na przykład użytkownik może użyć opcji -require, aby znaleźć programy lub pliki wstępne do zainstalowania programu EMAC -common.

[fedora@fedora] $ rpm -q -requires Emacs -common
Podobnie, zapytaj o informacje o skryptach uruchamianych przed i po instalacji lub usuwaniu RPM za pomocą pomocy --Skrypty opcja.
[cc lang = "text" szerokie = "100%" height = "100%" uciekł = "true" motyw = "blackboard" nowrapt = "0"]
[fedora@fedora] $ rpm -q - -scripts httpd

Kolejna ważna cecha, że RPM Oferty to -queryformat Opcja, która umożliwia nam zapytanie, takie jak tagi i wyjście w dowolnym formacie, który użytkownik preferuje. Uruchom następujące polecenie, aby wyświetlić wszystkie dostępne tagi:

[Fedora@fedora] $ rpm -QueryTags | mniej
ŁUK
Archiwesu
Basenames
Bugurl
Buildarchs
BuildHost
CZAS BUDOWY

Na przykład, aby wyświetlić nazwę, rozmiar i numer wydania znacznika Binutils, Użyj następującego polecenia:

[fedora@fedora] $ rpm -q binutils --Queryformat „Pakiet to %nazwa, \, a jego rozmiar to %rozmiar \ n”.

Pakiet to binutils, jego rozmiar to 31814958, a wydanie to 41.FC34

Wreszcie, dodaj -P Flag do opcji zapytania, aby pomóc w zbadaniu RPM udostępnionych przez kogoś przed instalacją.

[fedora@fedora] $ yumdownloader emac-common
[fedora@fedora] $ rpm -qip emacs-common-27.2-3.FC34.x86_64.RPM

Ten pakiet zawiera wszystkie wspólne pliki potrzebne przez EMACS, EMACS-Lucid lub Emacs-Nox.

Weryfikacja RPM

Baza danych RPM zawiera odciski palców dla każdego pliku pakietu, który umożliwia użytkownikowi weryfikację jego integralności. Polecenie RPM oferuje -V funkcja, aby sprawdzić wszelkie zmiany wprowadzone na zainstalowane komponenty pakietów. Należy jednak pamiętać, że zmiany mają miejsce w pliku konfiguracyjnym po instalacji, ale zmiany w binariach stanowią problem.

Zainstaluj pakiet EMAC-common i wprowadzaj zmiany w jego plikach. Pamiętaj jednak, aby usunąć i ponownie zainstalować opakowanie po eksperymencie.

[fedora@fedora] $ rpm -i zsh -5.8-5.FC34.x86_64.RPM
[fedora@fedora] $ sudo -i
[root@fedora ~]# echo fedora> /bin /zsh
[root@fedora ~]# rm /etc /zshrc
RM: Usuń zwykły plik '/etc/zshrc'? y
[fedora@fedora] $ rpm -v vim
Brak c /etc /zshrc
S.5… T. /usr/bin/zsh

Powyższe wyjście wyświetla zmiany wprowadzone w pliku / etc /, podczas gdy plik / etc / jest usuwany. Litery lub liczby w powyższym wyjściu reprezentują wszelkie zmiany wprowadzone w plikach pakietu. Te litery zastępują kropki po manipulacji plikiem, niektóre wskaźniki są następujące:

  • S: Rozmiar pliku różni się
  • D: niedopasowanie głównych/drobnych urządzeń
  • M: Tryb pliku różni się
  • P: Możliwości różnią się
  • U: Własność użytkownika różni się
  • 5: Suma MD5 różni się
  • T: Czas modyfikacji

Można znaleźć więcej szczegółów na temat wskaźników weryfikacji z oficjalnej dokumentacji.

Powyższe dane wyjściowe pomaga interpretować zmiany rozmiaru pliku, zmiany w MD5Sum w stosunku do odcisku palca pliku i czas modyfikacji. RPM polecenie oferuje -Wymieńpkgs Opcja przywrócenia stanu pakietu. Sprawdź ponownie z opcją Verify: Żadne wyjście nie wyświetla żadnych zmian.

[fedora@fedora] $ rpm -i --replacepkgs zsh -5.0.2-7.El7.x86_64.RPM
[fedora@fedora] $ rpm -v vim

Idealną praktyką jest prowadzenie kopii zapasowej bazy danych /var/lib/rpm do medium tylko do odczytu. Pomaga zweryfikować integralność pakietu z pewnością, że nie jest sprawdzana z temperowaną/pękniętą bazą danych.

Wniosek

Artykuł szczegółowo opisuje historię i ewolucję systemu opakowaniowego dla dystrybucji Red Hat Linux. Zawiera również szczegóły dotyczące opakowania RPM i jego lokalizacji wewnątrz systemu. Na koniec artykuł zawiera szczegółowe szczegóły dotyczące pięciu podstawowych operacji RPM.