Introduksjon
EN pakkehåndteringssystem eller pakkebehandling er en gruppe programvareverktøy. Den automatiserer installasjonsprosessen, oppgraderingsprosessen, konfigurasjonsprosessen og fjerningsprosessen til dataprogrammene for et operativsystem på datamaskinen på en effektiv måte. EN pakkeansvarlig fungerer med pakker, data i arkivfiler og programvaredistribusjoner.
Pakker inkluderer metadata som navn på programvaren, beskrivelse av formålet, kontrollsum (fortrinnsvis en kryptografisk hash-funksjon), d avhengighetsliste, leverandør, og versjonsnummer avgjørende for at programvaren skal fungere ordentlig.
- Metadata lagres i databasen til en lokal pakke ved installasjon.
- Vanligvis administrerer pakkeforvaltere databasen med versjonsinformasjon og programvareavhengigheter for å forhindre manglende forutsetninger og programvarefeil.
- De opererer tett med appbutikker, binære depotadministratorer og programvarelager.
- Pakkeadministratorer er utviklet for å eliminere kravet til manuelle oppdateringer og installasjoner.
- Spesielt kan det være nyttig for store organisasjoner hvis operativsystemer vanligvis kombinerer hundrevis eller mye flere forskjellige programvarepakker.
Funksjoner til Package Manager
En programvarepakke kan defineres som arkivfil kombinere et dataprogram og viktige metadata også for utviklingen. Systemprogrammet kan være innenfor kildekoden som må bygges og kompileres først.
Pakkemetadata inneholder pakkeversjon, pakkebeskrivelse og avhengigheter (pakker som må installeres på forhånd). Mange pakkeadministratorer eies med handlingen å installere, avinstallere, vedlikeholde eller finne programvarepakker under kommando av brukeren.
De pakkehåndteringssystem inneholder noen typiske funksjoner som er nevnt nedenfor:
- Håndtere filarkiverne for utpakking av pakkearkiver.
- Sikre ektheten og integriteten til pakken ved å autentisere henholdsvis deres digitale sertifikater og kontrollsummer.
- Oppdatere, installere, laste ned eller slå opp eksisterende programvare gjennom en appbutikk eller programvarelager.
- Kombinere pakker via funksjon for å redusere forvirringen hos brukeren.
- Opprettholde avhengigheter for å sikre at en pakke er installert sammen med hver pakke den trenger. Så ignorerer 'avhengighetshelvete'.
Grensesnitt for kompilerte pakker (lokalt)
Systemadministratorer kan installere og administrere programvaren ved hjelp av noen andre verktøy enn programvaren for pakkeadministrasjon. For eksempel, en lokal administrator kan laste ned kildekoden (upakket), kompilere den og deretter installere den.
Det kan føre til at den lokale systemtilstanden faller ut av synkroniseringen sammen med databasen til pakkebehandlingstilstanden. Den lokale administratoren vil være nødvendig for å ta noen ekstra tiltak som å manuelt integrere endringene i en pakkebehandling eller administrere noen få avhengigheter.
eksempel binært søketre
Det er noen verktøy til stede for å sikre at kompileringspakkene (lokalt) er utviklet med pakkehåndteringen.
SjekkInstaller er tilgjengelig for .rpm eller .deb filbaserte distribusjoner og Slackware Linux også. Til hybrid systemer som Arch Linux og oppskriftsbaserte systemer som Gentoo Linux, det er mulig å i utgangspunktet spesifisere en oppskrift, som deretter bekrefter at en pakke passer inn i en lokal pakkedatabase.
Utfordringer med distribuerte biblioteker
Ulike datasystemer som er avhengige av den dynamiske bibliotekkoblingen, snarere enn statisk bibliotekkobling, distribuerer maskininstruksjonens biblioteker (kjørbare) på tvers av applikasjoner og pakker.
I disse typer systemer resulterer de typiske forholdene mellom forskjellige pakker som trenger bibliotekversjoner i en utfordring kalt 'avhengighetshelvete'.
Det er også kjent som 'DLL helvete' på Microsoft Windows når du håndterer koblede biblioteker dynamisk. God pakkehåndtering er avgjørende for disse systemene.
Fra OPENSTEP , var rammeverket et forsøk på å løse dette problemet, ved å tillate at mer enn én bibliotekversjon ble installert samtidig, og for mange programvarepakker for å beskrive hvilken versjon de er koblet til.
Konfigurasjonsvedlikehold
Konfigurasjonsfilens oppgraderinger er spesielt problematiske med programvareoppgraderinger. I det minste på Unix, siden pakkebehandlere oppsto som filarkiveringsverktøyutvidelsen.
Vanligvis beholder eller overskriver de bare konfigurasjonsfilene, i stedet for å bruke regler for dem. Det kan oppstå flere problemer når konfigurasjonsfilformatet endres. For eksempel, hvis en gammel konfigurasjonsfil ikke deaktiverer nyere alternativer eksplisitt, må den vises. Noen få pakkebehandlere som Debians dpkg tillater konfigurasjon på installasjonstidspunktet. I noen andre tilfeller er det ønskelig å installere pakker sammen med standardkonfigurasjonen og overskrive konfigurasjonen i installasjonen (hodeløs) til et stort antall systemer. Denne typen installasjon (forhåndskonfigurert) støttes også via dpkg.
Oppgraderingsundertrykkelse
Det er tradisjonelt å tilgjengeliggjøre brukeren sammen med handlingslisten som skal kjøres (vanligvis pakkelisten som skal oppgraderes og eventuelt oppgi nye og gamle versjonsnumre) hvis en bruker samarbeider med pakkehåndteringsprogramvaren for å få til oppgraderingen.
Den lar brukeren enten velge en enkelt pakke for oppgraderinger eller ta en oppgradering i bulk. Ulike pakkeadministratorer kan konfigureres for aldri å oppgradere mange pakker, eller for å oppgradere dem bare hvis kritiske ustabiliteter eller sårbarheter oppdages i den gamle standarden, som spesifisert av programvarepakken. Noen ganger er denne prosessen kjent som versjonsfesting.
For eksempel:
yum støtter det med exclude=openoffice* syntaks
pacman med syntaksen Ignorer=openoffice (i begge tilfeller, for å undertrykke oppgradering av openoffice)
dselect og dpkg støtter det delvis av hold-flagget i pakkevalgene.
egnethet har 'forby' og 'holde' flagg.
portage støtter det av en konfigurasjonsfil, dvs. package.mask.
APT utvider flagget, dvs. holde ved komplekset 'feste' metode (brukere kan også svarteliste pakken).
Lagre
For å gi brukerne ekstra kontroll over hvilke typer programvare de tillater å installere over systemet deres (noen ganger på grunn av bekvemmelighet og juridiske årsaker fra distributørens side), lastes programvaren noen ganger ned ved hjelp av mange programvarelager.
sql teller distinkt
Fjerning av kaskadepakke
Noen av de mer utviklede pakkehåndteringsaspektene letter 'cascading package removal', der hver pakke som er avhengig av destinasjonspakken og hver pakke som destinasjonspakken er avhengig av, fjernes også.
Sammenligning av kommandoer
Kommandoene er imidlertid unike for alle de spesifikke pakkeadministratorene. Disse kommandoene er i stor grad oversettelige fordi de fleste av pakkebehandlerne legger til rette for de samme funksjonene.
Utbredelse av pakkeforvalteren
Pakkebehandlere som dpkg er tilgjengelige så tidlig som i 1994. Ulike distribusjoner av Linux orientert mot binære pakker er sterkt avhengige av pakkehåndteringssystemet på grunn av deres viktigste måte å vedlikeholde og administrere programvare på.
Mange mobile operativsystemer som Windows Phone, iOS (Unix-lignende) og Android (Linux-basert) avhenger nesten av leverandørens respektive App Store. Derfor bruker de deres pakkehåndteringssystem (dedikert).
Sammenligning med installatørene
Ofte er en pakkebehandler kjent som en 'installasjonsbehandling'. Det kan forårsake forvirring blant installatører og pakkebehandlere. Noen av hovedforskjellene er gitt nedenfor:
Kriterium | Pakkebehandler | Installatør |
---|---|---|
Sendes med | Vanligvis OS | Alle dataprogrammer |
Installasjonsinformasjon plassering | En sentral database for installasjon | Det er helt og holdent etter installatørens skjønn. Det kan være en fil i mappen til appen eller blant mappene og filene til operativsystemet. De kan registrere seg selv med listen over et avinstalleringsprogram uten å avsløre installasjonsinformasjonen. |
Vedlikeholdsomfang | Potensielt hver pakke på et system | Bare produktet den ble pakket til |
Utvikler | Enkeltpakkebehandlerleverandør | Mer enn én installatørleverandør |
Format på pakken | En håndfull anerkjente formater | Det kan være så mange formater som appens nummer |
Kompatibilitet av pakkeformat | Kan brukes så lenge en pakkebehandling bruker den. Enten oppgraderer ikke brukeren en pakkebehandling eller så fortsetter de nye pakkebehandlingsversjonene å støtte det. | Hvis installasjonsprogrammet bruker et hvilket som helst arkivformat, er installasjonsprogrammet alltid kompatibelt med det. Selv om installatører kan bli påvirket av programvareråte som alle datamaskiner. |
Sammenligning med automatiseringsverktøy
Nesten alle administrasjonssystemer for programvarekonfigurasjon representerer distribusjon av programvare og bygging av programvare som separate. Vanligvis tar byggeautomatiseringsverktøyet kildekodefilene som allerede er i det lesbare formatet på et system, og det akselererer prosedyren for å konvertere dem til en kjørbar pakke (binær) på et lignende system.
Vanligvis laster en pakkebehandler som senere kjører på noen få andre systemer ned disse kjørbare pakkene (forhåndsbygd binær) på Internett og installerer dem deretter.
Selv om begge typer verktøy inkluderer flere vanlige faktorer som er nevnt nedenfor:
- Den topologiske sorteringen av avhengighetsgrafen brukes i en pakkebehandling for å håndtere avhengigheter mellom mange binære komponenter.
- Den brukes også i en byggebehandling for å håndtere avhengigheten mellom mange kildekomponenter.
- Ulike makefiler gir støtte, ikke bare å bygge kjørbare filer.
- De støtter også installasjonen ved hjelp av make install.
- Alle pakkeadministratorer støtter å oversette kildekode (lesbar for mennesker) til binære kjørbare filer og deretter installere den for den kildebaserte distribusjonen som Homebrew, Sorcery, Portage, etc.
Noen verktøy som A-A-P og Gjøre er utviklet for å administrere både distribusjon og bygging. De kan også brukes som enten en pakkebehandling eller et byggeautomatiseringsverktøy eller begge deler.
Grunnleggende pakkebehandlere og deres formater
Universell pakkebehandler
Det kalles også binær repository manager. Denne pakkebehandleren er et programvareverktøy laget for å optimalisere lagringen og laste ned de binære filene, pakkene og artefaktene som produseres og brukes i en programvareutviklingsprosess.
Universelle pakkeforvaltere fokus på å standardisere motebrukerne behandler hver type pakke. De gir brukerne muligheten til å bruke samsvars- og sikkerhetsberegninger rundt hver type artefakt. De har blitt tildelt å være midt i en DevOps verktøykjede.
Åpen kildekode og gratis programvaresystemer
Pakkene på kompatible og lignende lisenser har eksistert for bruk på flere operativsystemer ved oppførselen til åpen kildekode og fri programvare.
Disse pakkene kan distribueres og kombineres ved å bruke internt komplekse og konfigurerbare pakkesystemer for å håndtere flere versjonsspesifikke konflikter og avhengigheter og programvarepermutasjoner.
Noen få pakkesystemer med åpen kildekode og fri programvare er også publisert som åpen kildekode og fri programvare.
En forskjell mellom pakkeadministrasjon i operativsystemer som Windows og Mac OS X og de i åpen kildekode og fri programvare, som Linux, er at åpen kildekode og gratis programvaresystemer lar tredjepartspakker oppgraderes og installeres fra en lignende mekanisme . Mens mange pakkebehandlere for Windows og Mac OS X vil oppgradere programvare gitt av henholdsvis Microsoft og Apple.
Muligheten for kontinuerlig oppgradering av tredjepartsprogramvare legges til ved å inkludere den tilsvarende depot-URLen til konfigurasjonsfilen til pakkeadministrasjonen.
Pakkeformater
Alle pakkeadministratorer er avhengige av metadataene og formatet til pakkene de kan administrere. Pakkeadministratorer krever at filgrupper grupperes for den bestemte pakkebehandleren med riktige metadata som avhengigheter.
En kjernesamling av verktøy administrerer ofte den generelle installasjonen gjennom disse pakkene, og mer enn én pakkebehandler bruker disse verktøyene for å gi tilleggsfunksjonalitet.
Eksempel:
- nam avhenger av rpm som backend. Yum utvikler backend-funksjonaliteten ved å legge til aspekter som enkel konfigurasjon for å vedlikeholde systemnettverket.
- Den synaptiske pakkebehandlingen gir en GUI ved å bruke biblioteket til Advanced Packaging Tool som avhenger av dpkg.
Romvesen kan defineres som et program som oversetter mellom forskjellige Linux-pakkeformater. Det støtter konvertering blant Slackware (.tgz, .tlz, .tbz, .txz) pakker, Solaris (.pkg), Stampede (.slp), .deb, .rpm-pakker, og Linux Standard Base (LSB) kompatibel.
I flere mobile OSer som f.eks Google Play bruker pakkeformatet til Android-applikasjonspakke (kort oppsummert APK ) mens Windows Store bruker formatene til XAP og APPX. Både Windows Store og Google Play inneholder eponyme pakkebehandlere.
Pakkeadministratorer på applikasjonsnivå
Det er noen få pakkebehandlere (tillegg) for OSer for programmeringsspråk og med begrensede muligheter der utviklere krever de gjeldende bibliotekene. Pakkebehandlerne på applikasjonsnivå konsentrerer seg om programvaresystemets lille del i motsetning til pakkebehandlerne på systemnivå.
Vanligvis ligger de i et katalogtre. Det er ikke organisert av en pakkebehandler på systemnivå som /usr/local/fink eller c:cygwin. Selv om det kanskje ikke er betingelsen for en pakkebehandler som jobber med programmeringsbiblioteker, kan det forårsake en mulig konflikt ettersom begge pakkebehandlerne kan bryte oppgraderinger og be om å 'egen' filen.