Uvod
A sistem za upravljanje paketov ali upravitelj paketov je skupina programskih orodij. Avtomatizira postopek namestitve, postopek nadgradnje, postopek konfiguracije in postopek odstranjevanja računalniških programov za operacijski sistem računalnika na učinkovit način. A upravitelj paketov deluje s paketi, podatki v arhivskih datotekah in distribucijami programske opreme.
Paketi vključujejo metapodatke, kot je ime programske opreme, opis njenega cilja, kontrolna vsota (po možnosti kriptografska zgoščevalna funkcija), d seznam odvisnosti, prodajalec, in številka različice bistvenega pomena za pravilno delovanje programske opreme.
- Metapodatki se ob namestitvi shranijo v bazo podatkov lokalnega paketa.
- Običajno upravitelji paketov upravljajo bazo podatkov o različicah in odvisnostih programske opreme za preprečevanje manjkajočih predpogojev in neujemanja programske opreme.
- Tesno sodelujejo s trgovinami z aplikacijami, upravitelji binarnih repozitorijev in repozitoriji programske opreme.
- Upravljalniki paketov so razviti za odpravo zahteve po ročnih posodobitvah in namestitvah.
- Še posebej je lahko v pomoč velikim organizacijam, katerih operacijski sistemi običajno združujejo na stotine ali veliko več različnih programskih paketov.
Funkcije upravitelja paketov
Programski paket lahko definiramo kot arhivska datoteka združevanje računalniškega programa in bistvenih metapodatkov za razvoj. Sistemski program je lahko znotraj izvorne kode, ki jo je treba najprej zgraditi in prevesti.
Metapodatki paketa vsebujejo različico paketa, opis paketa in odvisnosti (pakete, ki jih je treba predhodno namestiti). Številni upravljalniki paketov so v lasti nameščanja, odstranjevanja, vzdrževanja ali iskanja programskih paketov pod ukazom uporabnika.
The sistem za upravljanje paketov vsebuje nekaj značilnih funkcije ki so navedeni spodaj:
- Ukvarjanje z arhivi datotek za ekstrahiranje arhivov paketov.
- Zagotavljanje pristnosti in celovitosti paketa z avtentikacijo njihovih digitalnih potrdil oziroma kontrolnih vsot.
- Posodabljanje, namestitev, prenos ali iskanje obstoječe programske opreme prek trgovine z aplikacijami ali skladišča programske opreme.
- Združevanje paketov prek funkcije za zmanjšanje zmede uporabnika.
- Ohranjanje odvisnosti za zagotovitev, da je bil paket nameščen skupaj z vsakim paketom, ki ga potrebuje. Torej, ignoriranje 'pekel odvisnosti'.
Sprednje strani za prevedene pakete (lokalno)
Sistemski skrbniki lahko namešča in upravlja programsko opremo s pomočjo nekaterih orodij, ki niso programska oprema za upravljanje paketov. na primer lokalni skrbnik lahko prenese izvorno kodo (nezapakirano), jo prevede in nato namesti.
Lahko povzroči, da stanje lokalnega sistema izpade iz sinhronizacije skupaj z bazo podatkov stanja upravitelja paketov. Lokalni skrbnik bi moral sprejeti nekaj dodatnih ukrepov, kot je ročna integracija sprememb v upravitelja paketov ali upravljanje nekaj odvisnosti.
nadzorovano strojno učenje
Prisotnih je nekaj orodij za zagotavljanje prevajanja paketov (lokalno) so razviti z upravljanjem paketov.
CheckInstall je na voljo za .rpm oz distribucije na osnovi datotek .deb in Slackware Linux prav tako. Za hibrid sistemi, kot so Arch Linux in sistemi, ki temeljijo na receptih kot Gentoo Linux, na začetku je mogoče določiti recept, ki nato potrdi, da paket ustreza lokalni bazi podatkov paketov.
Izzivi s porazdeljenimi knjižnicami
Različni računalniški sistemi, ki so odvisni od dinamičnega povezovanja knjižnic, namesto od statičnega povezovanja knjižnic, distribuirajo knjižnice strojnih navodil (izvršljive) po aplikacijah in paketih.
V teh vrstah sistemov tipična razmerja med različnimi paketi, ki potrebujejo knjižnico, povzročijo različice v izzivu, imenovanem 'pekel odvisnosti'.
Znan je tudi kot 'DLL pekel' v sistemu Microsoft Windows pri dinamični obravnavi povezanih knjižnic. Dobro upravljanje paketov je ključnega pomena za te sisteme.
Od OPENSTEP , je bil okvirni sistem uspešen pri reševanju te težave, saj je dovolil hkratno namestitev več kot ene različice knjižnice in za številne programske pakete, da opišejo, med katero različico so povezani.
Vzdrževanje konfiguracije
Nadgradnje konfiguracijske datoteke so še posebej problematične pri nadgradnjah programske opreme. Vsaj v Unixu, saj so upravitelji paketov nastali kot razširitev pripomočka za arhiviranje datotek.
Običajno le obdržijo ali prepišejo konfiguracijske datoteke, namesto da bi zanje uporabili pravila. Ko se format konfiguracijske datoteke spremeni, se lahko pojavi več težav. Na primer, če stara konfiguracijska datoteka izrecno ne onemogoči novejših možnosti, je to treba prikazati. Nekaj upraviteljev paketov, kot je Debianov dpkg, dovoljuje konfiguracijo v času namestitve. V nekaterih drugih primerih je zaželeno, da pakete namestite skupaj z uporabo privzete konfiguracije in prepišete konfiguracijo v namestitvi (brez glave) na veliko število sistemov. Ta vrsta namestitve (prednastavljena) je podprta tudi prek dpkg.
Zatiranje nadgradnje
Običajno je uporabniku na voljo skupaj s seznamom dejanj, ki jih je treba zagnati (običajno seznam paketov, ki jih je treba nadgraditi in po možnosti zagotoviti nove in stare številke različice), če uporabnik sodeluje s programsko opremo za upravljanje paketov, da izvede nadgradnjo.
Uporabniku omogoča, da bodisi izbere en sam paket za nadgradnje ali izvede nadgradnjo v velikem obsegu. Različne upravljalnike paketov je mogoče konfigurirati tako, da nikoli ne nadgradijo veliko paketov ali pa jih nadgradijo samo, če so v starem standardu odkrite kritične nestabilnosti ali ranljivosti, kot določa programski paket. Včasih je ta postopek znan kot pripenjanje različice.
Na primer:
yum podpira z exclude=openoffice* sintaksa
pacman s sintakso Ignore=openoffice (v obeh primerih za onemogočanje nadgradnje openoffice)
dselect in dpkg ga delno podpirata z zastavico zadrževanja znotraj izbir paketov.
sposobnost ima 'prepovedati' in 'drži' zastave.
portage ga podpira s konfiguracijsko datoteko, tj. paket.maska.
APT razširi zastavo, tj. drži po kompleksu 'pripenjanje' (uporabniki lahko paket tudi uvrstijo na črno).
Repozitoriji
Da bi uporabnikom zagotovili dodaten nadzor nad vrstami programske opreme, ki jo dovolijo namestiti v njihov sistem (včasih zaradi priročnosti in pravnih razlogov na strani distributerja), se programska oprema včasih prenese z uporabo številnih skladišč programske opreme.
ključ ins
Kaskadno odstranjevanje paketov
Nekaj bolj razvitih vidikov upravljanja paketov olajša 'kaskadno odstranjevanje paketov', kjer sta odstranjena tudi vsak paket, ki je odvisen od ciljnega paketa, in vsak paket, od katerega je odvisen ciljni paket.
Primerjava ukazov
Vendar pa so ukazi edinstveni za vse posamezne upravitelje paketov. Ti ukazi so v veliki meri prevedljivi, ker večina upraviteljev paketov omogoča iste funkcije.
Razširjenost upravitelja paketov
Upravljalniki paketov, kot je dpkg, so na voljo že leta 1994. Različne distribucije Linuxa, usmerjene v binarne pakete, se močno zanašajo na sistem za upravljanje paketov zaradi njihovega glavnega sredstva za vzdrževanje in upravljanje programske opreme.
Številni mobilni operacijski sistemi, kot so Windows Phone, iOS (podoben Unixu) in Android (temelji na Linuxu), so skoraj odvisni od ustrezne App Store prodajalca. Zato uporabljajo svoj sistem za upravljanje paketov (namenski).
Primerjava z monterji
Pogosto je upravitelj paketov znan kot 'upravitelj namestitve'. Lahko povzroči zmedo med namestitelji in upravitelji paketov. Nekaj glavnih razlik je navedenih spodaj:
Merilo | Upravitelj paketov | Namestitveni program |
---|---|---|
Dobavljeno z | Običajno OS | Vsi računalniški programi |
Informacije o lokaciji namestitve | Centralna zbirka podatkov za namestitev | V celoti je po lastni presoji monterja. Lahko je datoteka v mapi aplikacije ali med mapami in datotekami operacijskega sistema. Lahko se registrirajo na seznamu odstranjevalcev, ne da bi razkrili informacije o namestitvi. |
Obseg vzdrževanja | Morebiti vsak paket v sistemu | Samo izdelek, h kateremu je bil pakiran |
razvijalec | Prodajalec enotnega upravitelja paketov | Več kot en prodajalec namestitvenega programa |
Oblika paketa | Peščica priznanih formatov | Formatov je lahko toliko, kot je število aplikacij |
Združljivost formata paketa | Lahko se uporablja, dokler ga uporablja upravitelj paketov. Bodisi uporabnik ne nadgradi upravitelja paketov ali pa ga nove različice upravitelja paketov še naprej podpirajo. | Če namestitveni program uporablja katero koli arhivsko obliko, je namestitveni program vedno združljiv z njo. Čeprav lahko na namestitvene programe vpliva gnitje programske opreme, kot na vsak računalnik. |
Primerjava s pripomočkom za avtomatizacijo
Skoraj vsi sistemi za upravljanje konfiguracije programske opreme predstavljajo ločeno uvajanje programske opreme in gradnjo programske opreme. Običajno pripomoček za avtomatizacijo gradnje vzame datoteke izvorne kode, ki so v človeku berljivem formatu že v sistemu, in pospeši postopek njihove pretvorbe v izvršljiv paket (binarni) v podobnem sistemu.
Običajno upravitelj paketov, ki se pozneje izvaja v nekaj drugih sistemih, prenese te izvedljive pakete (vnaprej zgrajene binarne datoteke) na internetu in jih nato namesti.
Čeprav obe vrsti orodij vključujeta več skupnih dejavnikov, ki so navedeni spodaj:
- Topološko razvrščanje grafa odvisnosti se uporablja znotraj upravitelja paketov za obravnavanje odvisnosti med številnimi binarnimi komponentami.
- Uporablja se tudi znotraj upravitelja gradnje za obravnavo odvisnosti med številnimi izvornimi komponentami.
- Različne make-datoteke zagotavljajo njihovo podporo, ne le gradnjo izvedljivih datotek.
- Prav tako podpirajo namestitev z uporabo make install.
- Vsi upravitelji paketov podpirajo prevajanje izvorne kode (človeku berljive) v binarne izvedljive datoteke in jo nato namestijo za distribucijo, ki temelji na izvoru, kot so Homebrew, Sorcery, Portage itd.
Nekatera orodja, kot je A-A-P in Naredi so razviti za upravljanje tako uvajanja kot izgradnje. Uporabljajo se lahko tudi kot upravitelj paketov ali pripomoček za avtomatizacijo gradnje ali oboje.
Osnovni upravljalniki paketov in njihovi formati
Univerzalni upravitelj paketov
Imenuje se tudi upravitelj binarnega repozitorija. Ta upravitelj paketov je programsko orodje, ustvarjeno za optimizacijo shranjevanja in prenosa binarnih datotek, paketov in artefaktov, proizvedenih in uporabljenih v procesu razvoja programske opreme.
Univerzalni upravitelji paketov osredotočiti se na standardizacijo modnih uporabnikov, ki obravnavajo vsako vrsto paketa. Uporabnikom nudijo možnost uporabe meritev skladnosti in varnosti za vsako vrsto artefakta. Dodeljeni so bili kot sredi a Veriga orodij DevOps.
Odprtokodni in brezplačni programski sistemi
Paketi na podlagi združljivih in podobnih licenc so obstajali za uporabo v več operacijskih sistemih zaradi obnašanja odprtokodne in brezplačne programske opreme.
Te pakete je mogoče distribuirati in kombinirati z uporabo interno zapletenih in konfigurabilnih sistemov pakiranja za upravljanje več konfliktov in odvisnosti ter permutacij programske opreme, specifičnih za različico.
Tudi nekaj sistemov pakiranja odprtokodne in brezplačne programske opreme je objavljenih kot odprtokodna in brezplačna programska oprema.
Ena razlika med upravljanjem paketov v operacijskih sistemih, kot sta Windows in Mac OS X, ter odprtokodnih in brezplačnih programskih sistemih, kot je Linux, je ta, da sistemi odprtokodne in brezplačne programske opreme omogočajo nadgradnjo in namestitev paketov tretjih oseb iz podobnega mehanizma. . Medtem ko bo veliko upraviteljev paketov Windows in Mac OS X nadgradilo programsko opremo Microsofta oziroma Applea.
Zmožnost stalnega posodabljanja programske opreme tretjih oseb je dodana z vključitvijo ustreznega URL-ja repozitorija v konfiguracijsko datoteko za upravljanje paketov.
Oblike paketov
Vsi upravitelji paketov so odvisni od metapodatkov in oblike paketov, ki jih lahko upravljajo. Upravljalniki paketov zahtevajo, da so skupine datotek združene za določenega upravitelja paketov z ustreznimi metapodatki, kot so odvisnosti.
Osnovna zbirka pripomočkov pogosto upravlja splošno namestitev prek teh paketov in več kot en upravitelj paketov uporablja te pripomočke za zagotavljanje dodatne funkcionalnosti.
primer:
- yum je odvisen od rpm kot ozadja. Yum razvija zaledno funkcionalnost z dodajanjem vidikov, kot je preprosta konfiguracija za vzdrževanje sistemskega omrežja.
- Sinaptični upravitelj paketov nudi GUI z uporabo knjižnice naprednega orodja za pakiranje, ki je odvisno od dpkg.
vesoljec lahko definiramo kot program, ki prevaja med različnimi formati paketov Linux. Podpira spreobrnjenje med Slackware (.tgz, .tlz, .tbz, .txz) paketi, Paketi Solaris (.pkg), Stampede (.slp), .deb, .rpm, in Standardna osnova Linuxa (LSB) skladen.
V več mobilnih operacijskih sistemih, kot je npr Google Play uporablja format paketa Paket aplikacij za Android (v kratkem APK ), medtem ko je Trgovina Windows uporablja formate XAP in APPX. Oboje Trgovina Windows in Google Play vsebujejo istoimenske upravitelje paketov.
Upravljalniki paketov na ravni aplikacije
Obstaja nekaj upraviteljev paketov (dodatek) za operacijske sisteme za programske jezike in z omejenimi zmožnostmi, kjer razvijalci potrebujejo trenutne knjižnice. Upravljalniki paketov na ravni aplikacije se osredotočajo na majhen del programskega sistema v nasprotju z upravljalniki paketov na ravni sistema.
Običajno se nahajajo v drevesu imenikov. Ni organiziran z upraviteljem paketov na sistemski ravni, kot je /usr/local/fink oz c:cygwin. Čeprav morda ni pogoj za upravitelja paketov, ki deluje s programskimi knjižnicami, kar povzroči možen konflikt, saj lahko oba upravitelja paketov prekineta nadgradnje in zahtevata 'lasten' datoteka.