Manager pachet RPM
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 pachetelor „ deb ” ș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
Mai multe distribuții GNU / Linux acceptă RPM-uri. Acestea includ (dar nu se limitează la următoarele):
- Fedora Core (de la versiunea 7 în continuare pur și simplu Fedora )
- Mandriva Linux
- Openmamba
- OpenSUSE
- PCLinuxOS
- PS2 Linux
- Red Flag Linux
- Red Hat Linux și derivate:
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:
- Încă un alt instrument de configurare (YaST) utilizat în distribuțiile SuSE și OpenSUSE Linux
- apt-rpm o versiune modificată a apt, pentru a gestiona fișierele .rpm
- urpmi folosit în Mandriva Linux
- Actualizator de câine galben, modificat (yum) folosit de Yellow Dog Linux și Fedora.
- Yum Extender cunoscut și sub numele de YumEX - o interfață grafică pentru programul yum
- Smart Package Manager , un alt manager de pachete din linia de comandă, disponibil pentru multe distribuții.
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ă
- ^ Re: [rhn-users] Bootstrapping RPM - cum?
- ^ Mageia .
Bibliografie
- Eric Foster-Johnson, Red Hat RPM Guide , 2003, ISBN 0-7645-4965-0 .
Elemente conexe
- Compilator
- Dependență (IT)
- Distribuție GNU / Linux
- Pachet (software)
- palarie rosie
- Red Hat Linux
- Sistem de gestionare a pachetelor
linkuri externe
- ( EN ) Ghidul Red Hat RPM din proiectul Fedora.
- (EN) Fox, Pennington, Red Hat 2003: Ghidul dezvoltatorului de proiect Fedora: Capitolul 4. Construirea pachetelor RPM
- ( RO )Pagina principală RPM Package Manager , la rpm.org .
- ( RO ) Informații detaliate despre formatul de fișier RPM , la rpm.org . Adus la 8 decembrie 2006 (arhivat din original la 5 iulie 2008) .
- ( EN ) RPM Find Net: (pentru a găsi pachete) , pe rpmfind.net .
- ( EN ) RPM Building ca utilizator , pe hut.fi. Adus la 8 decembrie 2006 (arhivat din original la 12 martie 2005) .
- ( EN ) Bailey, Ed 2000 : RPM maxim , o referință rpm învechită, dar populară
- ( RO ) Convențiile pachetului SUSE [ link rupt ] , pe developer.novell.com .
- ( EN ) Site-ul Packman din Austria, unde pot fi găsite pachetele RPM pentru Open SuSE 10.0 , la packman.inode.at .
- ( EN ) Format fișier pachet - Linux Standards Base , pe linuxbase.org .
- ( EN ) Cine menține RPM? - Abordează problema actualului administrator al RPM.