Pakkehåndteringssystem

Et pakkehåndteringssystem , også kjent som en pakkebehandling , er en samling verktøy som brukes til å automatisere prosessen med å installere, oppdatere, konfigurere og fjerne programvarepakker . Begrepet brukes ofte for å referere til pakkeadministratorer på Unix-lignende systemer , spesielt GNU/Linux , ettersom de er avhengige av disse pakkehåndteringssystemene.

På disse systemene distribueres programvaren i form av pakker , ofte innkapslet i en enkelt fil. Disse pakkene inkluderer annen viktig informasjon i tillegg til selve programvaren, for eksempel det fulle navnet, en beskrivelse av funksjonaliteten, versjonsnummeret, leverandøren av programvaren, kontrollsummen og en liste over andre pakker som kreves for riktig drift. programvaren. Denne metainformasjonen legges vanligvis inn i en lokal pakkedatabase.

Sammenligning mellom installatører og pakkehåndteringssystemer

Hovedforskjellene mellom et pakkehåndteringssystem og et installatør er som følger:

Pakkehåndteringssystem installatør
Det er en del av operativsystemet . Hvert produkt leveres med sin egen installatør.
Bruk en enkelt installasjonsdatabase . Spor din egen installasjon
Du kan sjekke og administrere alle pakkenesystemet . Det fungerer kun med sitt eget produkt.
Et enkelt leverandørpakkehåndteringssystem. Flere installatørleverandører.
Et enkelt pakkeformat . Flere installasjonsformater

Funksjon

Pakkehåndteringssystemer har som oppgave å organisere alle pakkene som er installert på systemet og sørge for å opprettholde deres brukervennlighet. Dette oppnås ved å kombinere følgende teknikker:

Mange av de mye brukte pakkehåndteringssystemene bruker enkle backends for å installere pakker. For eksempel bruker YUM RPM som en backend og APT bruker dpkg .

Utfordringer med delte biblioteker

På systemer der applikasjoner deler deler av instruksjoner, for eksempel de fleste GNU/Linux-distribusjoner , blir avhengighetsoppløsning ved installasjon og avinstallering av programvare en nødvendighet. Noen av de mer avanserte pakkehåndteringssystemene har evnen til å rekursivt eller kaskade avinstallere pakker, fjerne alle pakker som er avhengig av pakken som skal avinstalleres, og alle pakker som pakken som skal avinstalleres, er avhengig av. .

Grensesnitt for lokalt kompilerte pakker

Det er vanlig at en administrator installerer programvare som ikke er tilgjengelig i de medfølgende lagrene . Noen eksempler kan være en ny versjon av en applikasjon som ennå ikke er tilgjengelig i distribusjonen , eller et annet alternativ enn det som er valgt av distribusjonen. Hvis denne tilleggsprogramvaren bare distribueres i kildekodeform , vil installasjonen kreve kompilering av koden. Installering av denne tilleggsprogramvaren på systemet vil imidlertid føre til at systemtilstanden og pakkebehandlingsdatabasen ikke er synkronisert, så administratoren må ta flere skritt for å sikre at pakkebehandlingssystemet er oppdatert. hold deg oppdatert. , siden den ikke er i stand til å gjøre det automatisk.

Det finnes verktøy som sørger for at lokalt kompilerte pakker er integrert med pakkehåndteringssystemet. I distribusjoner basert på .deb- og .rpm- pakker , samt Slackware , finner vi checkinstall . For oppskriftsbaserte systemer som Gentoo Linux eller noen hybridsystemer som Arch GNU/Linux , er det vanlig å skrive oppskriften først, da det vil sikre at pakken er inkludert i databasen.

Konvertering av binære pakker

alien er et program som konverterer mellom de forskjellige GNU/Linux-pakkeformatene. Støtter konvertering mellom Linux Standard Base , RPM , deb , Stampede (.slp) og Slackware (.tgz) pakker.

Konfigurasjonsvedlikehold

Et annet problem bortsett fra programvareoppdateringen er oppdateringen av konfigurasjonsfiler. Siden pakkehåndteringssystemer dukket opp som utvidelser til arkivverktøy, er de vanligvis bare i stand til å overskrive eller beholde konfigurasjonsfiler, i stedet for å kunne bruke modifikasjonsregler på dem. Det finnes imidlertid unntak, som vanligvis gjelder for kjernekonfigurasjonsprosessen , ettersom feil kjernekonfigurasjon kan føre til at omstart av systemet mislykkes, og til og med kan føre til at systemet ikke starter opp. Disse problemene kan oppstå når formatet på konfigurasjonsfilene endres. For eksempel når den gamle konfigurasjonsfilen ikke deaktiverer nye alternativer som bør deaktiveres. Noen pakkebehandlingssystemer , som Debians dpkg , lar deg konfigurere programvare under installasjonen. I enhver annen situasjon er det å foretrekke å installere pakkene med standardkonfigurasjonen og overskrive den senere. For eksempel å installere en pakke på et stort antall datamaskiner ( dpkg støtter også denne typen forhåndskonfigurert installasjon).

Repositories

Programvare gjøres vanligvis tilgjengelig for brukere i repositories for å gi brukerne enkel kontroll over de forskjellige typer programvare de installerer på systemet sitt, og noen ganger av juridiske eller bekvemmelighetsgrunner av distributører.

Forhindre pakkeoppgradering

Når en bruker samhandler med pakkebehandleren for å utføre en oppgradering, vil pakkebehandleren vanligvis vise en liste over oppgaver som skal utføres (vanligvis listen over pakker som skal oppgraderes, og muligens også versjonsnumre) og vil sannsynligvis også tillate en full oppgradering eller velg pakkene som skal oppgraderes. Noen pakkeadministratorer lar deg angi pakker som du aldri vil oppdatere eller bare når de fikser viktige feil i forrige versjon. Denne prosessen blir ofte referert til som versjonsfesting . For eksempel tillater yum dette med syntaksen exclude=openoffice* , pacman med IgnorePkg=openoffice (begge for å unngå å oppdatere OpenOffice), mens Debian-verktøyene har en mer kompleks og kraftig syntaks.

Eksempler

Gratis systemer

På grunn av fri programvares natur er pakker under kompatible og lignende lisenser tilgjengelige for bruk på forskjellige operativsystemer. Disse pakkene kan enkelt kombineres og distribueres ved å bruke konfigurerbare "pakkesystemer" for å håndtere ulike programvareendringer og administrere versjonsspesifikke avhengigheter og konflikter. Noen gratis programvarepakkesystemer er i seg selv utgitt som gratis programvare.

Binære pakkebaserte systemer
  1. dpkg , som opprinnelig ble brukt av Debian og nå også av andre systemer, bruker .deb -formatet og var det første som hadde et kjent verktøy for avhengighetsoppløsning, APT .
  2. fink , for Mac OS X , stammer delvis fra dpkg/apt og fra porter. Dette verktøyet har som mål å gjøre det enklere å installere gratis programmer på Mac OS X.
  3. RPM -systemet , skapt av Red Hat og brukt av et stort antall GNU/Linux-distribusjoner , er Linux Standard Base- pakkeformatet . For å jobbe med dette pakkesystemet er det mange forskjellige verktøy som apt4rpm , up2date (fra Red Hat ), urpmi (fra Mandriva ), YaST (fra SuSE ) og YUM (brukes av Fedora og Yellow Dog Linux ).
  4. tgz-systemet, brukt av Slackware , pakker programvare ved å bruke tar og gzip . Men i tillegg er det noen verktøy på høyere nivå for å håndtere dette formatet: slapt-get, slackpkg og swaret.
  5. Pacman , for Arch Linux bruker forhåndskompilerte binærfiler distribuert i en pkg.tar.xz -fil .
Installasjonssystemer fra en oppskrift
  • Portage -systemet ( basert på emerge - programmet ) brukes av Gentoo Linux . Dette er inspirert av BSD -portsystemet og bruker skript kalt ebuilds for å installere programvaren.
  • I GoboLinux-distribusjonen inneholder en oppskriftsfil informasjon om hvordan du laster ned, pakker ut, kompilerer og installerer en pakke ved å bruke kompileringsverktøyet .
Hybridsystemer
  • FreeBSD Ports Collection , noen ganger kalt vanlige porter, bruker et system med Makefiles for å installere programvare fra kildekode eller binære filer. MacPorts (for Mac OS X ) og portsamlingene for pkgsrc (NetBSD og OpenBSD ) er like.
Metapakkesystemer

Følgende systemer forener pakkehåndtering for mange eller alle distribusjoner av GNU/Linux og andre Unix-varianter, også basert på konseptet med oppskriftsfiler :

  • click gir en enkel måte å installere programvarepakker for de fleste distribusjoner uten avhengighetsproblemene som er felles for andre pakkeformater.
  • Autopackage bruker .package -filen .
  • epm , utviklet av Easy Software Products (produsenter av CUPS ), er en metapakker som lar deg lage native pakker for alle GNU/Linux-distribusjoner og andre Unix-baserte operativsystemer ( .deb , .rpm , .tgz for GNU/ Linux; .pkg for Solaris og *BSD , .dmg for Mac OS X, ...) fra en enkelt .list -fil .

Proprietære systemer

For tiden brukes et bredt utvalg av pakkehåndteringssystemer av enkelte proprietære operativsystemer for å håndtere installasjonen av både proprietære og gratis pakker.

  • installp er AIX - kommandoen for Object Data Manager (ODM)-databaser.
  • SysV - formatet som brukes av Solaris.
  • Programvaredistributør er pakkebehandleren for HP-UX .
  • I Microsoft .NET -rammeverket er en assembly et bibliotek med delvis kompilert kode beregnet for bruk i distribusjon, versjonering og sikkerhet.

Pakkebehandling innebygd i applikasjoner

Noen pakkehåndteringssystemer er ikke hjemmehørende i operativsystemet, for eksempel fink på Mac OS X eller det Unix-lignende miljøet til Cygwin (for Windows). Noen tolkede programmeringsspråk har sitt eget pakkehåndteringssystem for å håndtere språkmoduler, for eksempel programmeringsspråkene Perl (se CPAN ) eller PHP (se PEAR ) eller Ruby ( RubyGems ). Andre programmer kan komme med sitt eget system for å administrere moduler.

Se også

Referanser