Introducere
A sistem de gestionare a pachetelor sau manager de pachete este un grup de instrumente software. Automatizează procesul de instalare, procesul de actualizare, procesul de configurare și procesul de eliminare a programelor de calculator pentru un sistem de operare al computerului într-un mod eficient. A manager de pachete lucrează cu pachete, date din fișierele de arhivă și distribuții de software.
Pachetele includ metadate precum numele software-ului, descrierea obiectivului acestuia, suma de control (de preferință o funcție hash criptografică), d lista de dependenta, furnizor, și versiunea numarul esențial pentru ca software-ul să ruleze corect.
- Metadatele sunt salvate în baza de date a unui pachet local la instalare.
- De obicei, managerii de pachete gestionează baza de date cu informații despre versiune și dependențe de software pentru a preveni lipsa cerințelor preliminare și nepotrivirile software.
- Aceștia operează îndeaproape cu magazinele de aplicații, managerii de depozite binare și depozitele de software.
- Managerii de pachete sunt dezvoltați pentru a elimina cerințele pentru actualizări și instalări manuale.
- În special, poate fi util pentru organizațiile mari ale căror sisteme de operare combină de obicei sute sau mult mai multe pachete software diferite.
Funcțiile Managerului de pachete
Un pachet software poate fi definit ca fișier de arhivă combinând un program de calculator și metadate esențiale, precum și pentru dezvoltare. Programul de sistem ar putea fi în codul sursă care trebuie construit și compilat mai întâi.
Metadatele pachetului conțin versiunea pachetului, descrierea pachetului și dependențe (pachete care trebuie instalate în prealabil). Mulți manageri de pachete sunt deținute cu acțiunea de a instala, dezinstala, întreține sau găsi pachete software sub comanda utilizatorului.
The sistem de management al pachetelor conţine unele tipice funcții care sunt menționate mai jos:
- Tratează cu arhivatoarele de fișiere pentru extragerea arhivelor pachetelor.
- Asigurarea autenticității și integrității pachetului prin autentificarea certificatelor digitale și respectiv a sumelor de control.
- Actualizarea, instalarea, descărcarea sau căutarea de software existent printr-un magazin de aplicații sau un depozit de software.
- Combinarea pachetelor prin intermediul funcției pentru reducerea confuziei utilizatorului.
- Menținerea dependențelor pentru a vă asigura că un pachet a fost instalat împreună cu fiecare pachet de care are nevoie. Deci, ignorând „infernul dependenței”.
Front-end-uri pentru pachetele compilate (local)
Administratorii de sistem ar putea instala și gestiona software-ul cu ajutorul unor instrumente altele decât software-ul de gestionare a pachetelor. De exemplu, un administrator local ar putea descărca codul sursă (dezîmpachetat), îl poate compila și apoi îl poate instala.
Poate cauza starea sistemului local să iasă din sincronizare împreună cu baza de date a stării managerului de pachete. Administratorul local ar trebui să ia câteva măsuri suplimentare, cum ar fi integrarea manuală a modificărilor într-un manager de pachete sau gestionarea câtorva dependențe.
câte taste au tastaturile
Există câteva instrumente prezente pentru a vă asigura că pachetele de compilare (local) sunt dezvoltate cu managementul pachetelor.
Verificați Instalarea este disponibil pentru .rpm sau distribuții bazate pe fișiere .deb și Slackware Linux de asemenea. Pentru hibrid sisteme precum Arch Linux și sisteme bazate pe rețete ca Gentoo Linux, este posibil să specificați inițial o rețetă, care apoi confirmă că un pachet se încadrează într-o bază de date locală a pachetelor.
Provocări cu bibliotecile distribuite
Diverse sisteme informatice care depind de conectarea dinamică a bibliotecii, mai degrabă decât de legarea statică de biblioteci, distribuie bibliotecile de instrucțiuni ale mașinii (executabile) între aplicații și pachete.
În aceste tipuri de sisteme, relațiile tipice dintre pachetele distincte care necesită versiuni de bibliotecă rezultă într-o provocare numită „infernul dependenței”.
Este cunoscut și ca „DLL naiba” pe Microsoft Windows când se ocupă dinamic de biblioteci legate. O bună gestionare a pachetelor este crucială pentru aceste sisteme.
Din OPENSTEP , sistemul cadru a fost o șansă de a rezolva această problemă, permițând instalarea simultană a mai multor versiuni de bibliotecă și pentru multe pachete software pentru a descrie versiunea cu care sunt conectate.
Întreținerea configurației
Actualizările fișierului de configurare sunt deosebit de problematice cu actualizările software. Cel puțin pe Unix, deoarece managerii de pachete au apărut ca extensia utilitarului de arhivare a fișierelor.
De obicei, ele doar păstrează sau suprascriu fișierele de configurare, în loc să le folosească reguli. Pot apărea mai multe probleme atunci când formatul fișierului de configurare se modifică. De exemplu, dacă un fișier de configurare vechi nu dezactivează opțiunile mai noi în mod explicit, acestea trebuie afișate. Câțiva manageri de pachete, cum ar fi dpkg de la Debian, permit configurarea în momentul instalării. În alte cazuri, este de dorit să instalați pachete împreună cu configurația implicită și să suprascrieți configurația din instalare (fără cap) la un număr mare de sisteme. Acest tip de instalare (preconfigurat) este acceptat și prin dpkg.
Upgrade Suppression
Este tradițional ca utilizatorul să fie disponibil împreună cu lista de acțiuni care urmează să fie rulată (de obicei lista de pachete care urmează să fie actualizată și, eventual, să se furnizeze numerele de versiune nouă și veche) dacă un utilizator cooperează cu software-ul de gestionare a pachetelor pentru a realiza actualizarea.
Acesta permite utilizatorului fie să selecteze un singur pachet pentru upgrade, fie să efectueze un upgrade în bloc. Diferiți manageri de pachete ar putea fi configurați pentru a nu actualiza niciodată multe pachete sau pentru a le actualiza numai dacă instabilitățile critice sau vulnerabilitățile sunt detectate în vechiul standard, așa cum este specificat de pachetul software. Uneori, acest proces este cunoscut sub numele de fixare a versiunii.
De exemplu:
yum îl susține cu exclude=openoffice* sintaxă
pacman cu sintaxa Ignora=openoffice (în ambele cazuri, pentru suprimarea upgrade-ului openoffice)
dselect și dpkg îl suportă parțial prin marcajul hold din selecțiile pachetului.
aptitudinea are 'interzis' și 'ține' steaguri.
portage îl acceptă printr-un fișier de configurare, adică pachet.mască.
APT extinde steagul, adică tine de complex 'prindere' metoda (utilizatorii pot pune și pachetul pe lista neagră).
Depozitele
Pentru a oferi utilizatorilor un control suplimentar asupra tipurilor de software pe care le permit să fie instalate în sistemul lor (uneori din cauza confortului și a motivelor legale din partea distribuitorului), software-ul este uneori descărcat folosind multe depozite de software.
matrice de octeți în șir de caractere java
Îndepărtarea pachetului în cascadă
Câteva dintre aspectele mai dezvoltate de gestionare a pachetelor facilitează „înlăturarea pachetului în cascadă”, unde fiecare pachet care se bazează pe pachetul de destinație și fiecare pachet pe care se bazează pachetul de destinație sunt de asemenea eliminate.
Comparația comenzilor
Cu toate acestea, comenzile sunt unice pentru toți managerii de pachete specifici. Aceste comenzi sunt în mare măsură traducibile, deoarece majoritatea managerilor de pachete facilitează aceleași funcții.
Prevalența managerului de pachete
Managerii de pachete, cum ar fi dpkg, sunt disponibile încă din 1994. Diverse distribuții de Linux orientate către pachetele binare se bazează în mare măsură pe sistemul de gestionare a pachetelor din cauza mijloacelor lor principale de întreținere și gestionare a software-ului.
Multe sisteme de operare mobile precum Windows Phone, iOS (asemănător Unix) și Android (bazat pe Linux) depind aproape de magazinul de aplicații al furnizorului. Prin urmare, își folosesc sistemul de gestionare a pachetelor (dedicat).
Comparație cu instalatorii
Adesea, un manager de pachete este cunoscut ca un „Manager de instalare”. Poate provoca confuzie în rândul instalatorilor și managerilor de pachete. Unele dintre principalele diferențe sunt prezentate mai jos:
Criteriu | Manager de pachete | Instalator |
---|---|---|
Livrat cu | De obicei, sistemul de operare | Toate programele de calculator |
Locația informațiilor de instalare | O bază de date centrală pentru instalare | În totalitate, este la discreția instalatorului. Poate fi un fișier din folderul aplicației sau dintre folderele și fișierele sistemului de operare. Ei s-ar putea să se înregistreze cu lista de dezinstalare fără a dezvălui informațiile de instalare. |
Domeniul de întreținere | Potenţial fiecare pachet dintr-un sistem | Doar produsul la care a fost ambalat |
Dezvoltator | Furnizor unic de manager de pachete | Mai mult de un furnizor de instalatori |
Formatul pachetului | O mână de formate recunoscute | Pot exista la fel de multe formate ca numărul aplicației |
Compatibilitatea formatului pachetului | Poate fi utilizat atâta timp cât îl folosește un manager de pachete. Fie utilizatorul nu actualizează un manager de pachete, fie noile versiuni de manager de pachete îl acceptă în continuare. | Dacă programul de instalare folosește orice format de arhivă, atunci programul de instalare este întotdeauna compatibil cu acesta. Deși, instalatorii pot fi influențați de putregaiul software ca orice computer. |
Comparație cu utilitarul de automatizare
Aproape toate sistemele de management al configurației software reprezintă implementarea software-ului și crearea de software separat. De obicei, utilitarul de automatizare a construcției preia fișierele codului sursă care sunt în format care poate fi citit de om deja pe un sistem și accelerează procedura de conversie a acestora într-un pachet executabil (binar) pe un sistem similar.
De obicei, un manager de pachete care rulează ulterior pe alte câteva sisteme descarcă acele pachete executabile (binare pre-construite) pe Internet și apoi le instalează.
Deși, ambele tipuri de instrumente includ mai mulți factori comuni, care sunt menționați mai jos:
- Sortarea topologică a graficului de dependență este aplicată în cadrul unui manager de pachete pentru gestionarea dependențelor dintre multe componente binare.
- De asemenea, este aplicat în interiorul unui manager de build pentru a gestiona dependența dintre multe componente sursă.
- Diverse makefile-uri oferă suportul lor, nu doar construirea de executabile.
- De asemenea, acceptă instalarea, folosind make install.
- Toți managerii de pachete acceptă traducerea codului sursă (lizibil de către om) în executabile binare și apoi îl instalează pentru distribuția bazată pe sursă, cum ar fi Homebrew, Sorcery, Portage etc.
Unele instrumente ca A-A-P și Face sunt dezvoltate pentru a gestiona atât implementarea, cât și construcția. Ele pot fi, de asemenea, folosite fie ca manager de pachete, fie ca utilitar de automatizare a construirii sau ambele.
Managerii de pachete de bază și formatele acestora
Manager de pachete universal
Se mai numeste manager de depozit binar. Acest manager de pachete este un instrument software creat pentru optimizarea stocării și descărcarea fișierelor binare, pachete și artefacte produse și utilizate în cadrul unui proces de dezvoltare software.
Manageri universali de pachete se concentrează pe standardizarea modului în care utilizatorii de modă tratează fiecare tip de pachet. Acestea oferă utilizatorilor capacitatea de a utiliza metrici de conformitate și securitate în jurul fiecărui tip de artefact. Ei au fost desemnați ca fiind în mijlocul a Lanțul de instrumente DevOps.
Sisteme open-source și software liber
Pachetele cu licențe compatibile și similare au existat pentru a fi utilizate pe mai multe sisteme de operare prin comportamentul software-ului open-source și gratuit.
Aceste pachete ar putea fi distribuite și combinate folosind sisteme de ambalare complexe și configurabile în interior pentru a gestiona mai multe conflicte și dependențe specifice versiunii și permutări software.
De asemenea, câteva sisteme de ambalare de software open-source și liber sunt ele însele publicate ca software open-source și liber.
O diferență între gestionarea pachetelor din sistemele de operare precum Windows și Mac OS X și cele din software-ul open-source și gratuit, cum ar fi Linux, este că sistemele open-source și software-ul liber permit ca pachetele terțe să fie actualizate și instalate dintr-un mecanism similar. . Întrucât, mulți manageri de pachete din Windows și Mac OS X vor actualiza software-ul oferit de Microsoft și, respectiv, Apple.
Capacitatea de actualizare continuă a software-ului terță parte este adăugată prin includerea adresei URL a depozitului corespunzătoare în fișierul de configurare al gestionării pachetelor.
Formate de pachete
Toți managerii de pachete depind de metadatele și formatul pachetelor pe care le-ar putea administra. Managerii de pachete necesită ca grupurile de fișiere să fie grupate pentru managerul de pachete anume cu metadate adecvate, cum ar fi dependențe.
O colecție de bază de utilitare gestionează adesea instalarea generală prin aceste pachete și mai mult de un manager de pachete aplică aceste utilitare pentru a oferi funcționalități suplimentare.
Exemplu:
- yum depinde de rpm ca backend. Yum dezvoltă funcționalitatea backend adăugând aspecte precum configurarea simplă pentru a menține rețeaua sistemului.
- Managerul de pachete synaptic oferă o interfață grafică prin aplicarea bibliotecii Advanced Packaging Tool, care depinde de dpkg.
Străin poate fi definit ca un program care se traduce între formate distincte de pachete Linux. Sprijină conversia printre Slackware (.tgz, .tlz, .tbz, .txz) pachete, Pachete Solaris (.pkg), Stampede (.slp), .deb, .rpm, și Linux Standard Base conformă (LSB).
În mai multe sisteme de operare mobile, cum ar fi Google Play utilizează formatul de pachet al Pachetul de aplicații Android (în scurt APK ) in timp ce Magazin Windows folosește formatele de XAP și APX. Ambii Magazin Windows și Google Play conțin manageri de pachete eponimi.
Manageri de pachete la nivel de aplicație
Există câțiva manageri de pachete (suplimente) pentru sistemele de operare pentru limbaje de programare și cu capacități limitate în care dezvoltatorii necesită bibliotecile actuale. Managerii de pachete la nivel de aplicație se concentrează pe partea mică a sistemului software, în contrast cu managerii de pachete la nivel de sistem.
De obicei, ele locuiesc într-un arbore de directoare. Nu este organizat de un manager de pachete la nivel de sistem, cum ar fi /usr/local/fink sau c:cygwin. Deși, poate să nu fie condiția pentru un manager de pachete care funcționează cu biblioteci de programare, provocând un posibil conflict, deoarece ambii manageri de pachete pot întrerupe actualizările și pot solicita „propriu” fișierul.