logo

Linux Package Manager

Introduktion

A pakethanteringssystem eller pakethanterare är en grupp mjukvaruverktyg. Det automatiserar installationsprocessen, uppgraderingsprocessen, konfigurationsprocessen och borttagningsprocessen för datorprogrammen för ett operativsystem på datorn på ett effektivt sätt. A pakethanterare arbetar med paket, data i arkivfiler och programvarudistributioner.

Paketen innehåller metadata som namnet på programvaran, beskrivning av dess mål, kontrollsumma (helst en kryptografisk hashfunktion), d beroendelista, leverantör, och versionsnummer viktigt för att programvaran ska fungera korrekt.

  • Metadata sparas i databasen för ett lokalt paket vid installationen.
  • Vanligtvis hanterar pakethanterare databasen med versionsinformation och mjukvaruberoenden för att förhindra saknade förutsättningar och mjukvarufel.
  • De har ett nära samarbete med appbutiker, binära förvarshanterare och programvaruförråd.
  • Pakethanterare är utvecklade för att eliminera kravet på manuella uppdateringar och installationer.
  • Det kan särskilt vara användbart för stora organisationer vars operativsystem vanligtvis kombinerar hundratals eller mycket fler olika programvarupaket.

Pakethanterarens funktioner

Ett mjukvarupaket kan definieras som arkivfil kombinerar ett datorprogram och viktiga metadata även för utvecklingen. Systemprogrammet kan vara inom källkoden som måste byggas och kompileras först.

Paketmetadata innehåller paketversion, paketbeskrivning och beroenden (paket som måste installeras i förväg). Många pakethanterare ägs med åtgärden att installera, avinstallera, underhålla eller hitta mjukvarupaket under användarens kommando.

De pakethanteringssystem innehåller några typiska funktioner som nämns nedan:

  • Hantera filarkiveringarna för att extrahera paketarkiv.
  • Säkerställa äktheten och integriteten för paketet genom att autentisera deras digitala certifikat respektive kontrollsummor.
  • Uppdatera, installera, ladda ner eller leta upp befintlig programvara via en appbutik eller programvarulager.
  • Kombinera paket via funktion för att minska användarens förvirring.
  • Upprätthålla beroenden för att säkerställa att ett paket har installerats tillsammans med alla paket som det behöver. Så, ignorerar 'beroendehelvetet'.
Linux Package Manager

Gränssnitt för kompilerade paket (lokalt)

Systemadministratörer kan installera och hantera programvaran med hjälp av några andra verktyg än programvaran för pakethantering. Till exempel, en lokal administratör kan ladda ner källkoden (opaketerad), kompilera den och sedan installera den.

Det kan orsaka att det lokala systemtillståndet faller ur synkroniseringen tillsammans med databasen för pakethanterarens tillstånd. Den lokala administratören skulle behövas för att vidta ytterligare åtgärder som att manuellt integrera ändringarna i en pakethanterare eller hantera några beroenden.

git status -s

Det finns några verktyg för att säkerställa att kompileringspaketen (lokalt) utvecklas med pakethanteringen.

Kontrollera Installera finns för .rpm eller .deb filbaserade distributioner och Slackware Linux också. För hybrid system som Arch Linux och receptbaserade system tycka om Gentoo Linux, det är möjligt att initialt ange ett recept, som sedan bekräftar att ett paket passar in i en lokal paketdatabas.

Utmaningar med distribuerade bibliotek

Olika datorsystem som är beroende av den dynamiska bibliotekslänkningen, snarare än statisk bibliotekslänkning, distribuerar maskininstruktionens bibliotek (körbara) över applikationer och paket.

I dessa typer av system resulterar de typiska relationerna mellan distinkta paket som behöver biblioteksversioner i en utmaning som kallas 'beroendehelvetet'.

Det är också känt som 'DLL helvete' på Microsoft Windows när du hanterar länkade bibliotek dynamiskt. Bra pakethantering är avgörande för dessa system.

Från OPENSTEP , ramsystemet var ett försök att lösa detta problem, genom att tillåta fler än en biblioteksversion att installeras samtidigt, och för många programvarupaket att beskriva vilken version de är länkade till.

Konfigurationsunderhåll

Konfigurationsfilens uppgraderingar är särskilt problematiska med programuppgraderingar. Åtminstone på Unix, eftersom pakethanterare har sitt ursprung som filarkiveringsverktygets tillägg.

Vanligtvis behåller eller skriver de bara över konfigurationsfilerna istället för att använda regler för dem. Flera problem kan uppstå när konfigurationsfilformatet ändras. Till exempel, om en gammal konfigurationsfil inte inaktiverar nyare alternativ uttryckligen måste den visas. Några pakethanterare som Debians dpkg tillåter konfiguration vid installationstillfället. I vissa andra fall är det önskvärt att installera paket tillsammans med standardkonfigurationen och skriva över konfigurationen i installationen (huvudlös) till ett stort antal system. Denna typ av installation (förkonfigurerad) stöds också via dpkg.

Uppgraderingsundertryckning

Det är traditionellt att tillgängliggöra användaren tillsammans med åtgärdslistan som ska köras (vanligtvis paketlistan som ska uppgraderas och eventuellt ange nya och gamla versionsnummer) om en användare samarbetar med pakethanteringsmjukvaran för att åstadkomma uppgraderingen.

Det tillåter användaren att antingen välja ett enda paket för uppgraderingar eller ta en uppgradering i bulk. Olika pakethanterare skulle kunna konfigureras för att aldrig uppgradera många paket, eller för att uppgradera dem endast om kritiska instabiliteter eller sårbarheter upptäcks i den gamla standarden, som specificeras av mjukvarupaketet. Ibland kallas denna process för versionsfästning.

Till exempel:

yum stödjer det med exclude=openoffice* syntax

pacman med syntaxen Ignorera=openoffice (i båda fallen, för att undertrycka uppgradering av openoffice)

dselect och dpkg stödjer det delvis av hold-flaggan i paketvalen.

begåvning har 'förbjuda' och 'håll' flaggor.

portage stöder det med en konfigurationsfil, dvs. package.mask.

APT utökar flaggan, dvs. håll vid komplexet 'nålar' metod (användare kan också svartlista paketet).

Förvar

För att ge användarna extra kontroll över de typer av programvara som de tillåter att installeras över deras system (ibland på grund av bekvämlighet och juridiska skäl från distributörens sida), laddas programvaran ibland ned med hjälp av många programvarulager.

gnista handledning

Borttagning av kaskadpaket

Några av de mer utvecklade pakethanteringsaspekterna underlättar 'cascading package removal', där varje paket som förlitar sig på destinationspaketet och varje paket som destinationspaketet förlitar sig på tas också bort.

Jämförelse av kommandon

Kommandona är dock unika för alla specifika pakethanterare. Dessa kommandon är till stor del översättbara eftersom de flesta av pakethanterarna underlättar samma funktioner.

Förekomst av pakethanteraren

Pakethanterare som dpkg finns tillgängliga så tidigt som 1994. Olika distributioner av Linux orienterade mot binära paket är starkt beroende av pakethanteringssystemet på grund av deras huvudsakliga sätt att underhålla och hantera programvara.

Många mobila operativsystem som Windows Phone, iOS (Unix-liknande) och Android (Linux-baserade) beror nästan på deras respektive leverantörens App Store. Därför använder de sitt pakethanteringssystem (dedikerat).

Jämförelse med installatörerna

Ofta är en pakethanterare känd som en 'installationshanteraren'. Det kan orsaka förvirring bland installatörer och pakethanterare. Några av de viktigaste skillnaderna ges nedan:

Kriterium Pakethanterare Installatör
Skickas med Vanligtvis OS Alla datorprogram
Plats för installationsinformation En central databas för installation Det är helt och hållet efter installatörens gottfinnande. Det kan vara en fil i appens mapp eller bland mapparna och filerna i operativsystemet. De kan registrera sig i listan över ett avinstallationsprogram utan att avslöja installationsinformationen.
Underhållsomfång Potentiellt varje paket på ett system Bara produkten som den packades till
Utvecklare En pakethanterare leverantör Mer än en installatörsleverantör
Paketets format En handfull erkända format Det kan finnas så många format som appens nummer
Kompatibilitet för paketformat Kan användas så länge en pakethanterare använder den. Antingen uppgraderar inte användaren en pakethanterare eller så fortsätter de nya pakethanterarversionerna att stödja det. Om installationsprogrammet använder något arkivformat är installationsprogrammet alltid kompatibelt med det. Även om installatörer kan påverkas av mjukvaruröta som alla datorer.

Jämförelse med automationsverktyg

Nästan alla hanteringssystem för mjukvarukonfiguration representerar att distribuera programvara och bygga mjukvara som separata. Vanligtvis tar byggautomatiseringsverktyget källkodsfilerna som redan finns i det mänskliga läsbara formatet på ett system och det påskyndar proceduren för att konvertera dem till ett körbart paket (binärt) på ett liknande system.

Vanligtvis laddar en pakethanterare senare som körs på några andra system ned dessa körbara paket (förbyggda binära) på Internet och installerar dem sedan.

Även om båda typerna av verktyg inkluderar flera vanliga faktorer som nämns nedan:

  • Beroendegrafens topologiska sortering tillämpas i en pakethanterare för att hantera beroenden mellan många binära komponenter.
  • Det tillämpas också i en bygghanterare för att hantera beroendet mellan många källkomponenter.
  • Olika make-filer ger sitt stöd, inte bara att bygga körbara filer.
  • De stöder också installationen med make install.
  • Alla pakethanterare stöder att översätta källkod (läsbar för människor) till binära körbara filer och sedan installera den för den källbaserade distributionen som Homebrew, Sorcery, Portage, etc.

Vissa verktyg som A-A-P och Göra är utvecklade för att hantera både driftsättning och byggnad. De kan också användas som antingen en pakethanterare eller ett verktyg för byggautomatisering eller båda.

Grundläggande pakethanterare och deras format

Universell pakethanterare

Det kallas också binär förvarshanterare. Denna pakethanterare är ett mjukvaruverktyg skapat för att optimera lagringen och ladda ner de binära filerna, paketen och artefakterna som produceras och används inom en mjukvaruutvecklingsprocess.

Universella pakethanterare fokus på att standardisera mode användare behandlar varje typ av förpackning. De ger användarna möjlighet att använda efterlevnads- och säkerhetsmått kring varje typ av artefakt. De har tilldelats att vara mitt i en DevOps verktygskedja.

Linux Package Manager

Öppen källkod och fri programvara

Paketen med kompatibla och liknande licenser har funnits för användning på flera operativsystem genom beteendet hos öppen källkod och fri programvara.

Dessa paket kan distribueras och kombineras med internt komplexa och konfigurerbara paketeringssystem för att hantera flera versionsspecifika konflikter och beroenden och mjukvarupermutationer.

Dessutom publiceras ett fåtal paketeringssystem med öppen källkod och fri programvara själva som öppen källkod och fri programvara.

En skillnad mellan pakethantering i operativsystem som Windows och Mac OS X och de i öppen källkod och fri programvara som Linux är att öppen källkod och fri programvara tillåter att tredjepartspaket uppgraderas och installeras från en liknande mekanism . Medan många pakethanterare för Windows och Mac OS X kommer att uppgradera programvara från Microsoft respektive Apple.

Möjligheten att kontinuerligt uppgradera programvara från tredje part läggs till genom att inkludera motsvarande arkiv-URL i pakethanteringens konfigurationsfil.

Paketformat

Alla pakethanterare är beroende av metadata och format för paketen de kan hantera. Pakethanterare kräver att filgrupper grupperas för den specifika pakethanteraren med korrekt metadata som beroenden.

En kärnsamling av verktyg hanterar ofta den allmänna installationen genom dessa paket och mer än en pakethanterare använder dessa verktyg för att tillhandahålla ytterligare funktionalitet.

Exempel:

  1. mums beror på rpm som backend. Yum utvecklar backend-funktionaliteten genom att lägga till aspekter som enkel konfiguration för att underhålla systemnätverket.
  2. Den synaptiska pakethanteraren ger ett GUI genom att använda biblioteket för Advanced Packaging Tool som beror på dpkg.

Utomjording kan definieras som ett program som översätter mellan distinkta Linux-paketformat. Det stöder konvertering bland Slackware (.tgz, .tlz, .tbz, .txz) paket, Solaris (.pkg), Stampede (.slp), .deb, .rpm-paket, och Linux standardbas (LSB) kompatibel.

I flera mobila OS som t.ex Google Play använder paketformatet för Android-applikationspaket (kortfattat APK ) medan Windows Store använder formaten för XAP och APPX. Både Windows Store och Google Play innehålla pakethanterare med samma namn.

Pakethanterare på applikationsnivå

Det finns några pakethanterare (tillägg) för operativsystem för programmeringsspråk och med begränsade möjligheter där utvecklare kräver de nuvarande biblioteken. Pakethanterarna på applikationsnivå koncentrerar sig på mjukvarusystemets lilla del i motsats till pakethanterarna på systemnivå.

Vanligtvis finns de i ett katalogträd. Det är inte organiserat av en pakethanterare på systemnivå som /usr/local/fink eller c:cygwin. Även om det kanske inte är villkoret för en pakethanterare som arbetar med programmeringsbibliotek, vilket kan orsaka en konflikt eftersom båda pakethanterarna kan bryta uppgraderingar och begära att 'egen' filen.