Introduktion
EN pakkehåndteringssystem eller pakkehåndtering er en gruppe af softwareværktøjer. Det automatiserer installationsprocessen, opgraderingsprocessen, konfigurationsprocessen og fjernelsesprocessen for computerprogrammerne for et operativsystem på computeren på en effektiv måde. EN pakkeansvarlig arbejder med pakker, data i arkivfiler og softwaredistributioner.
Pakker inkluderer metadata som f.eks softwarens navn, beskrivelse af dens formål, kontrolsum (helst en kryptografisk hashfunktion), d afhængighedsliste, leverandør, og versionsnummer afgørende for, at softwaren kan køre korrekt.
- Metadata gemmes i databasen for en lokal pakke ved installation.
- Typisk administrerer pakkeadministratorer databasen med versionsoplysninger og softwareafhængigheder for at forhindre manglende forudsætninger og softwaremismatch.
- De arbejder tæt sammen med app-butikker, binære lageradministratorer og softwarelagre.
- Pakkeadministratorer er udviklet til at eliminere kravet om manuelle opdateringer og installationer.
- Det kan især være nyttigt for store organisationer, hvis OS'er typisk kombinerer hundredvis eller meget flere forskellige softwarepakker.
Funktioner i Package Manager
En softwarepakke kan defineres som arkivfil ved at kombinere et computerprogram og væsentlige metadata til udviklingen. Systemprogrammet kan være inden for kildekoden, der først skal bygges og kompileres.
Pakkemetadata indeholder pakkeversion, pakkebeskrivelse og afhængigheder (pakker, der skal installeres på forhånd). Mange pakkeadministratorer ejes med handlingen at installere, afinstallere, vedligeholde eller finde softwarepakker under brugerens kommando.
Det pakkehåndteringssystem indeholder nogle typiske funktioner som er nævnt nedenfor:
- Beskæftiger sig med filarkiverne til udpakning af pakkearkiver.
- Sikring af ægtheden og integriteten af pakken ved at godkende henholdsvis deres digitale certifikater og kontrolsummer.
- Opdatering, installation, download eller søgning af eksisterende software gennem en appbutik eller softwarelager.
- Kombination af pakker via funktion for at mindske brugerens forvirring.
- Vedligeholdelse af afhængigheder for at sikre, at en pakke er blevet installeret sammen med hver pakke, den har brug for. Altså ignorerer 'afhængighedshelvede'.
Frontends til kompilerede pakker (lokalt)
Systemadministratorer kan installere og administrere softwaren ved hjælp af nogle andre værktøjer end softwaren til pakkehåndtering. For eksempel, en lokal administrator kan downloade kildekoden (upakket), kompilere den og derefter installere den.
Det kan forårsage, at den lokale systemtilstand falder ud af synkroniseringen sammen med databasen for pakkehåndteringstilstanden. Den lokale administrator ville være nødvendig for at tage nogle yderligere foranstaltninger, såsom at manuelt integrere ændringerne i en pakkeadministrator eller administrere nogle få afhængigheder.
eksempel binært søgetræ
Der er nogle værktøjer til stede for at sikre, at kompileringspakkerne (lokalt) udvikles med pakkehåndteringen.
CheckInstall er tilgængelig for .rpm eller .deb filbaserede distributioner og Slackware Linux såvel. Til hybrid systemer som Arch Linux og opskriftsbaserede systemer synes godt om Gentoo Linux, det er muligt i første omgang at angive en opskrift, som så bekræfter, at en pakke passer ind i en lokal pakkedatabase.
Udfordringer med distribuerede biblioteker
Forskellige computersystemer, der er afhængige af den dynamiske biblioteksforbindelse, snarere end statisk biblioteksforbindelse, distribuerer maskininstruktionens biblioteker (eksekverbare) på tværs af applikationer og pakker.
I disse typer systemer resulterer de typiske forhold mellem forskellige pakker, der kræver biblioteksversioner i en udfordring kaldet 'afhængighedshelvede'.
Det er også kendt som 'DLL helvede' på Microsoft Windows, når du håndterer linkede biblioteker dynamisk. God pakkehåndtering er afgørende for disse systemer.
Fra OPENSTEP , var rammesystemet et forsøg på at løse dette problem ved at tillade, at mere end én biblioteksversion blev installeret samtidigt, og for mange softwarepakker til at beskrive, hvilken version de er linket på tværs af.
Konfigurationsvedligeholdelse
Konfigurationsfilens opgraderinger er særligt problematiske med softwareopgraderinger. I det mindste på Unix, da pakkeadministratorer opstod som filarkiveringsværktøjsudvidelsen.
Normalt beholder eller overskriver de kun konfigurationsfilerne i stedet for at bruge regler til dem. Der kan opstå flere problemer, når konfigurationsfilformatet ændres. For eksempel, hvis en gammel konfigurationsfil ikke eksplicit deaktiverer nyere muligheder, skal den vises. Nogle få pakkeadministratorer som Debians dpkg tillader konfiguration på installationstidspunktet. I nogle andre tilfælde er det ønskeligt at installere pakker sammen med standardkonfigurationen og overskrive konfigurationen i installationen (hovedløs) til et stort antal systemer. Denne type installation (forudkonfigureret) understøttes også via dpkg.
Opgraderingsundertrykkelse
Det er traditionelt at stille brugeren til rådighed sammen med den handlingsliste, der skal køres (normalt pakkelisten, der skal opgraderes og eventuelt angive de nye og gamle versionsnumre), hvis en bruger samarbejder med pakkehåndteringssoftwaren for at udføre opgraderingen.
Det giver brugeren mulighed for enten at vælge en enkelt pakke til opgraderinger eller tage en masseopgradering. Forskellige pakkeadministratorer kunne konfigureres til aldrig at opgradere mange pakker eller kun til at opgradere dem, hvis kritiske ustabiliteter eller sårbarheder opdages i den gamle standard, som specificeret af softwarepakken. Nogle gange er denne proces kendt som version pinning.
For eksempel:
yum understøtter det med exclude=openoffice* syntaks
pacman med syntaksen Ignorer=openoffice (i begge tilfælde, for at undertrykke opgradering af openoffice)
dselect og dpkg understøtter det delvist af hold-flaget i pakkevalgene.
egnethed har 'forbyde' og 'holde' flag.
portage understøtter det af en konfigurationsfil, dvs. pakke.maske.
APT udvider flaget, dvs. holde ved komplekset 'pinning' metode (brugere kan også sortliste pakken).
Depoter
For at give brugerne ekstra kontrol over de typer software, som de tillader at blive installeret over deres system (nogle gange på grund af bekvemmelighed og juridiske årsager på distributørens side), downloades softwaren nogle gange ved hjælp af mange softwarelagre.
filtrerende python
Cascading pakke fjernelse
Et par af de mere udviklede pakkehåndteringsaspekter letter 'cascading package removal', hvor hver pakke, der er afhængig af destinationspakken, og hver pakke, som destinationspakken er afhængig af, også fjernes.
Kommandoer sammenligning
Kommandoerne er dog unikke for alle de specifikke pakkeadministratorer. Disse kommandoer er i vid udstrækning oversættelige, fordi de fleste af pakkeadministratorerne letter de samme funktioner.
Pakkemanagerens udbredelse
Pakkeadministratorer såsom dpkg er tilgængelige allerede i 1994. Forskellige distributioner af Linux orienteret til de binære pakker er stærkt afhængige af pakkehåndteringssystemet på grund af deres vigtigste midler til at vedligeholde og administrere software.
Mange mobile operativsystemer som Windows Phone, iOS (Unix-lignende) og Android (Linux-baseret) afhænger næsten af leverandørens respektive App Store. Derfor bruger de deres pakkehåndteringssystem (dedikeret).
Sammenligning med installatørerne
Ofte er en pakkehåndtering kendt som en 'installationsadministrator'. Det kan skabe forvirring blandt installatører og pakkeadministratorer. Nogle af de vigtigste forskelle er angivet nedenfor:
Kriterium | Pakkeadministrator | installatør |
---|---|---|
Sendes med | Normalt OS | Alle computerprogrammer |
Placering af installationsoplysninger | En central database til installation | Det er helt efter installatørens skøn. Det kan være en fil i appens mappe eller blandt operativsystemets mapper og filer. De kan registrere sig selv med listen over et afinstallationsprogram uden at afsløre installationsoplysningerne. |
Vedligeholdelsesomfang | Potentielt hver pakke på et system | Kun det produkt, det var pakket til |
Udvikler | Sælger for enkelt pakkehåndtering | Mere end én installatørleverandør |
Pakkeformat | En håndfuld anerkendte formater | Der kan være lige så mange formater som appens nummer |
Kompatibilitet af pakkeformat | Kan bruges, så længe en pakkeadministrator bruger det. Enten opgraderer brugeren ikke en pakkehåndtering, eller også understøtter de nye pakkehåndteringsversioner det. | Hvis installationsprogrammet bruger et hvilket som helst arkivformat, er installationsprogrammet altid kompatibelt med det. Selvom installatører kan blive påvirket af softwareråd som enhver computer. |
Sammenligning med automatiseringsværktøj
Næsten alle softwarekonfigurationsstyringssystemer repræsenterer implementering af software og bygningssoftware som separate. Typisk tager byggeautomatiseringsværktøjet kildekodefilerne, som allerede er i det menneskeligt læsbare format på et system, og det fremskynder proceduren for at konvertere dem til en eksekverbar pakke (binær) på et lignende system.
Typisk downloader en pakkeadministrator, der senere kører på et par andre systemer, disse eksekverbare pakker (forudbygget binær) på internettet og installerer dem derefter.
Selvom begge typer værktøjer inkluderer flere almindelige faktorer, som er nævnt nedenfor:
- Den topologiske sortering af afhængighedsgrafen anvendes i en pakkehåndtering til håndtering af afhængigheder mellem mange binære komponenter.
- Det anvendes også i en build-manager til at håndtere afhængigheden mellem mange kildekomponenter.
- Forskellige makefiler yder deres støtte, ikke kun at bygge eksekverbare filer.
- De understøtter også installation af, ved hjælp af make install.
- Alle pakkeadministratorer understøtter at oversætte kildekode (læsbar for mennesker) til binære eksekverbare filer og derefter installere den til den kildebaserede distribution som Homebrew, Sorcery, Portage osv.
Nogle værktøjer som f.eks A-A-P og Lave er udviklet til at styre både implementering og bygning. De kan også bruges som enten en pakkehåndtering eller et byggeautomatiseringsværktøj eller begge dele.
Grundlæggende pakkeadministratorer og deres formater
Universal pakkehåndtering
Det kaldes også binær lagerstyring. Denne pakkehåndtering er et softwareværktøj skabt til at optimere lagringen og downloade de binære filer, pakker og artefakter, der er produceret og brugt i en softwareudviklingsproces.
Universelle pakkeadministratorer fokus på at standardisere den modebrugere behandler enhver type pakke. De giver brugerne mulighed for at bruge compliance- og sikkerhedsmålinger omkring hver type artefakt. De er blevet tildelt som værende midt i en DevOps værktøjskæde.
Open source og gratis softwaresystemer
Pakkerne på kompatible og lignende licenser har eksisteret til brug på flere operativsystemer ved opførsel af open source og fri software.
Disse pakker kan distribueres og kombineres ved hjælp af internt komplekse og konfigurerbare pakkesystemer til at håndtere flere versionsspecifikke konflikter og afhængigheder og software-permutationer.
Også nogle få pakkesystemer med open source og fri software udgives selv som open source og fri software.
En forskel mellem pakkehåndtering i operativsystemer som Windows og Mac OS X og dem i open source og fri software som Linux er, at open source og gratis softwaresystemer tillader tredjepartspakker at blive opgraderet og installeret fra en lignende mekanisme . Hvorimod mange pakkeadministratorer af Windows og Mac OS X vil opgradere software givet af henholdsvis Microsoft og Apple.
Muligheden for løbende at opgradere tredjepartssoftware tilføjes ved at inkludere den tilsvarende lager-URL til konfigurationsfilen for pakkeadministrationen.
Pakkeformater
Alle pakkeadministratorer afhænger af metadata og format på de pakker, de kunne administrere. Pakkeadministratorer kræver, at filgrupper grupperes for den bestemte pakkehåndtering med korrekte metadata som afhængigheder.
En kernesamling af hjælpeprogrammer administrerer ofte den generelle installation gennem disse pakker, og mere end én pakkeadministrator anvender disse hjælpeprogrammer til at levere yderligere funktionalitet.
Eksempel:
- yum afhænger af rpm som backend. Yum udvikler backend-funktionaliteten ved at tilføje aspekter som simpel konfiguration for at vedligeholde systemets netværk.
- Den synaptiske pakkehåndtering giver en GUI ved at anvende biblioteket i Advanced Packaging Tool, som afhænger af dpkg.
Alien kan defineres som et program, der oversætter mellem forskellige Linux-pakkeformater. Det understøtter konvertering blandt Slackware (.tgz, .tlz, .tbz, .txz) pakker, Solaris (.pkg), Stampede (.slp), .deb, .rpm-pakker, og Linux Standard Base (LSB) kompatibel.
I flere mobile OS'er som f.eks Google Play bruger pakkeformatet for Android applikationspakke (kort sagt APK ) mens Windows Store bruger formaterne af XAP og APPX. Begge Windows Store og Google Play indeholde eponyme pakkeadministratorer.
Pakkeadministratorer på applikationsniveau
Der er nogle få pakkeadministratorer (tilføjelse) til OS'er til programmeringssprog og med begrænsede muligheder, hvor udviklere kræver de nuværende biblioteker. Pakkeadministratorerne på applikationsniveau koncentrerer sig om softwaresystemets lille del i modsætning til pakkeadministratorerne på systemniveau.
Typisk ligger de i et bibliotekstræ. Det er ikke organiseret af en pakkeadministrator på systemniveau som /usr/local/fink eller c:cygwin. Selvom det muligvis ikke er betingelsen for en pakkemanager, der arbejder med programmeringsbiblioteker, hvilket forårsager en mulig konflikt, da begge pakkemanagere kan bryde opgraderinger og anmode om at 'egen' filen.