Manager pachet RPM

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Red Hat Package Manager (abre. RPM ) indică, în informatică , unul dintre primele sisteme de gestionare a pachetelor create pentru distribuțiile GNU / Linux . Numele său se datorează Red Hat , compania americană fondată în 1995 , care a creat acest program pentru gestionarea fișierelor cu extensia .rpm, un format a cărui naștere poate fi întotdeauna urmărită până la activitatea acelei companii. Acronimul RPM indică și formatul de fișier al pachetului, care este .rpm.

Este prezent în distribuțiile Linux bazate și derivate din Red Hat Linux și vede printre utilizatorii săi principali alte distribuții precum Fedora , derivate din Red Hat, Mandriva , SuSe , OpenSUSE și derivatele acestora. Este, de asemenea, utilizat pe dispozitive Smartphone care rulează sisteme de operare Tizen și Sailfish OS .

Descriere

Programul rpm în sine nu rezolvă automat dependențele , cu toate acestea, au fost dezvoltate și sisteme pentru instalarea și gestionarea automată a acestora.

Formatul .rpm este, de exemplu. deb pentru Debian sau Ubuntu un așa-numit format binar , deoarece odată deschis (executat) se instalează automat (despachetați și copiați toate fișierele din sistem). Conceptual este comparabil cu fișierele .exe utilizate în MS-DOS și Windows . Prin urmare, se distinge de „formatul sursă”, de obicei fișiere comprimate în format tar.gz sau tar.gz2, care necesită mai întâi extragerea fișierelor conținute în acesta, precum și o serie întreagă de operații necesare pentru instalarea aceluiași pe hardware-ul și software-ul specific al mașinii pe care se află (așa-numita compilație din surse )

Exemple de utilizare

O scurtă prezentare generală a comenzilor, cu câteva opțiuni utile:

  • Instalați un pachet

rpm -i (--nodeps) pacchetto.rpm

opțiuni conexe:

--nodeps este folosit pentru a ignora dependențele - forța este utilizată pentru a forța instalarea ignorând orice conflicte

-– Testul cauzează odată ce instalarea este falsificată și arată orice conflicte - hash arată bara de progres a operației

  • Actualizați un pachet

rpm -U pacchetto.rpm

opțiunea - noduri este folosită pentru a ignora dependențele

  • Scoateți un pachet

rpm -e pacchetto

opțiunile care ar putea fi utile în caz de eliminare sunt:

-–Allmatches: indică eliminarea TOATE aparițiile pachetului și este utilizat în caz de situații anormale în care un pachet apare în listă așa cum este instalat de mai multe ori (cu versiuni diferite sau cu aceleași);

-–Reambalare: înainte de a scoate pachetul, creați unul pornind din fișierele instalate în prezent pe sistem (absorbind astfel orice modificări aduse). Pachetul creat va fi plasat în / var / spool / repackage /

--nodeps: exclude verificarea dependenței înainte de dezinstalare

  • Efectuați o căutare a pachetului în baza de date rpm

rpm -q pacchetto

opțiuni conexe:

--toate pentru a afișa toate pachetele instalate

-–State pentru a arăta starea unui pachet

  • Înțelegerea cărui pachet îi aparține un anumit fișier

rpm -qf /etc/passwd

opțiuni conexe

opțiunea -f specifică fișierul

opțiunea -q efectuează o căutare

  • Imprimați lista de fișiere conținute într-un pachet

rpm -ql setup

opțiunea -l înseamnă listă

  • Reconstruiți baza de date a pachetelor :

rpm—initdb

sau

rpm—rebuilddb

de fapt, este posibil ca baza de date a pachetelor, ca urmare a anomaliilor sau a defecțiunilor, să fie deteriorată, nepermițând funcționarea regulată a sistemului de ambalare.

În acest caz, trebuie să ștergeți fișierele existente și să reconstruiți baza de date cu opțiunile:

--initdb, care inițiază baza de date existentă, asigurându-se că este construită în mod valid.

--rebuilddb, în ​​schimb, va crea o nouă bază de date de la zero în funcție de antetele pachetelor instalate, dar folosind ca opțiune - dbpath (unde va fi directorul de utilizat pentru baza de date), apoi folosind - root va specifica să se utilizeze ca directorul de nivel superior

Opțiuni de uz general :

-? o --help Afișați ajutorul extins - versiunea Afișați numărul curent al versiunii rpm - silențios Imprimați cât mai puține mesaje pe ecran - în mod normal, vor fi afișate numai mesajele de eroare

-vo --verbose (modul detaliat) vor fi tipărite mesaje care indică progresul operațiunilor în desfășurare.

Pentru mai multe informații, consultați pagina manual .

Eticheta ambalajului

Informațiile referitoare la structura pachetelor instalate, pe distribuțiile GNU / Linux care utilizează formatul .rpm, sunt stocate în fișiere cu format db4 stocate în folderul / var / lib / rpm

Fiecare pachet RPM poartă o etichetă de pachet (numită și antet ), nu neapărat identică cu numele fișierului, care conține următoarele secțiuni de informații:

  • Numele software-ului
  • Versiunea software (versiunea preluată din „amonte” originală a sursei software)
  • Numărul lansării pachetului (de câte ori pachetul a fost reconstruit folosind aceeași versiune de software) acest câmp este adesea folosit pentru a indica distribuția specifică pentru care este destinat pachetul, de exemplu prin adăugarea de „ șiruri ” precum „mdv” (anterior, „mdk”) pentru Mandriva Linux ; „fc4” pentru Fedora Core 4; „rhl9” pentru Red Hat Linux 9; „suse100” pentru SuSE Linux 10.0 etc.
  • Arhitectura procesorului pentru care a fost compilat pachetul (i386, i686, atleton, ppc etc.)
  • Lista bibliotecilor de care programul trebuie să funcționeze
  • Programele cu care intră în conflict.

Numele fișierelor RPM au de obicei următorul format:

 <nume> - <versiune> - <eliberare>. <arh> .rpm

De exemplu:

nano-0.98-2.i386.rpm

În interiorul pachetului există o etichetă de pachet . Este posibil să găsiți RPM-uri care conțin cod sursă , ale căror etichete de pachet nu au o porțiune dedicată arhitecturii, care este înlocuită de cuvântul „src”.

De exemplu:

libgnomeuimm2.0-2.0.0-3.src.rpm

Un software poate fi distribuit în mai multe pachete separate: de exemplu, unul conține codul precompilat, celălalt fișierele necesare dezvoltării, cum ar fi anteturi și alte fișiere speciale pentru documentare. Pachetele care sunt utile numai pentru dezvoltare au postfix "-devel" concatenat la numele lor, în timp ce cele care conțin documentația despre pachet au de obicei postfix "-doc".

RPM-urile cu extensia noarch.rpm conțin date care nu depind de arhitectură de un anumit computer. Aceste fișiere includ de obicei fișiere grafice sau text pentru a fi utilizate de un alt program sau script.

Avantaje și dezavantaje

Beneficii

Cele mai citate avantaje ale utilizării pachetelor RPM în alte moduri (cum ar fi pachetele binare comprimate cu tar, cu gunzip sau cu bunzip) pentru a descărca și instala software-ul sunt:

  • O metodă uniformă de instalare a pachetelor și de urmărire a acestora, inclusiv fișierele pe care un pachet le diseminează pe sistem.
  • Simplitate în dezinstalarea programelor, chiar și pentru utilizatorii fără experiență.
  • Popularitate: Există mii de pachete disponibile, deși deseori trebuie recompilate pentru a lucra în alte distribuții.
  • Instalare non-interactivă: facilitează instalarea automată.
  • Includerea arhivei sursă originale (de ex. * .Tar.gz, * .tar.bz2) face mai ușoară verificarea CRC a acestora.
  • Verificare criptografică cu GNU Privacy Guard (GPG) și md5 .
  • Pachetele Delta RPM , care sunt echivalentul RPM al unui fișier simplu „ patch ”, se combină singure cu RPM-urile instalate pentru a efectua actualizări de software care au fost instalate prin RPM. Acesta este un mod mult mai convenabil de a actualiza software-ul instalat prin RPM, deoarece DeltaRPM nu are nevoie de pachetul original pentru a face upgrade.
  • Managementul dependenței: un pachet nu poate fi instalat dacă nu sunt prezente cele necesare funcționării sale și nu poate fi dezinstalat dacă este necesar pentru funcționarea altora.
  • Dependențele verificate sunt pe fișiere individuale, ceea ce face mai ușoară utilizarea pachetelor terță parte.

Dezavantaje

Dezavantajele des citate includ:

  • Adesea au modificări în formatul pachetului care le fac incompatibile retroactiv.
  • De multe ori au documentație incompletă și depășită.
  • Înțelegerea de către utilizator a aspectelor „ ambalării ” are de obicei o curbă de învățare abruptă.
  • Nu pot fi despachetate cu programe obișnuite, cum este cazul pachetelordeb ” și „ tgz ”, deoarece fișierul sursă „ tarball rpm ” include un script shell - rpm2cpio.sh - care extrage partea de arhivă cpio din „ rpm ” "folosind instrumentele Unix od, expr, dd și gunzip [1] .
  • Enumerați problemele de dependență menționându-le ca „ dependențe per fișier ” și nu ca dependențe ale pachetului care conține aceste fișiere.

Sistemul RPM a fost criticat pentru lipsa sa de consistență în denumirea pachetelor și evidențierea conținutului acestora, ceea ce poate face administrarea dependențelor automate destul de dificilă. Aceasta nu este o problemă înrădăcinată în natura formatului RPM în sine, ci mai degrabă o lipsă gravă de coordonare în nomenclatură, obișnuită printre distribuțiile Linux majore care utilizează pachete RPM, cum ar fi Red Hat Linux, SUSE și Mandriva Linux. Problema a fost rezolvată prin dezvoltarea de programe, precum Yum pe Red Hat Linux, apt-rpm , YaST pe SuSE, urpmi pe Mandriva Linux, care vă permit să rezolvați așa-numitul infern de dependență în Linux .

Crearea pachetelor RPM

„Rețeta” pentru crearea unui pachet RPM este un fișier „ spec ”. Fișierele de specificații se termină cu extensia „.spec” și conțin numele pachetului, versiunea, numărul revizuirii RPM, referința la unul sau mai multe fișiere sursă și pașii pentru construirea pachetului. Un pachet sursă RPM (numit SRPM) conține de obicei un fișier comprimat în tar.gzip cu sursele programului și un fișier .spec .

Dacă trebuie să faceți modificări la fișierul (sursele) sursă, este de preferat să nu operați direct pe fișierul sursă modificat, ci să faceți modificări doar la fișierul original prin fișiere corespunzătoare care descriu modificările și care vor fi utilizate de patch program la construirea pachetului.

Multe pachete (care vizează diferite sisteme de operare și procesoare) pot fi construite dintr-un singur fișier de specificații RPM, dacă se dorește. Pachetele RPM sunt create din fișierele de specificații RPM, utilizând comanda „ rpmbuild ”. Este de preferat ca faza de creare a pachetului RPM să fie realizată de un utilizator neprivilegiat (deci nu root ) deoarece erorile din fișierul „ spec ” pot, dacă „ rpmbuild ” este rulat ca root, să deterioreze sistemul de operare pe care îl utilizați.

Distribuții GNU / Linux folosind RPM

Pictogramă lupă mgx2.svg Același subiect în detaliu: distribuția GNU / Linux .

Mai multe distribuții GNU / Linux acceptă RPM-uri. Acestea includ (dar nu se limitează la următoarele):

Programe de gestionare a pachetelor RPM

Există mai multe programe de gestionare a pachetelor RPM, care găsesc dependențe între pachetele conectate, rezolvă dependențe și actualizează automat programele.

Cele mai cunoscute sunt:

Versiunile moderne ale SuSE și OpenSUSE folosesc Zypper , un manager de pachete de linie de comandă și un backend grafic pentru desktop, încă un alt instrument de configurare (YaST).

Notă

  1. ^ Re: [rhn-users] Bootstrapping RPM - cum?
  2. ^ Mageia .

Bibliografie

Elemente conexe

linkuri externe