Pakkesystem

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk
Illustrasjon av et pakkesystem som brukes til å laste ned ny programvare.

Et pakkesystem (ofte kalt pakkebehandler) er en samling verktøy for å automatisere prosessen ved å installere, oppgradere, konfigurere og fjerne programvarepakker fra en datamaskin. Begrepet er vanligvis brukt med hensyn til Unix og Unix-lignende systemer, spesielt Linux. En typisk Linux-distribusjon inkluderer tusenvis av pakker og er svært avhengig av pakkesystemet.

I slike systemer blir programvare distribuert i pakker, vanligvis i enkeltfiler. Pakkene inneholder ofte annen viktig informasjon i tillegg til selve programvaren, slik som navnet til programvaren, en beskrivelse, versjonsnummer, utgiver, sjekksum og en liste over andre pakker som programvaren er avhengig av for å kjøre skikkelig. Denne metainformasjonen legges typisk inn i en lokal pakkedatabase.

Ian Murdock har kommentert at pakkesystemer er «det største enkelt avansementet Linux har tilbrakt industrien», at det gjør at grensen mellom operativsystem og programmer flyter over i hverandre, og at det gjør det «lettere å flytte nye innovasjoner (...) inn i markedsplassen og (...) utvikle operativsystemet».[1]

Funksjoner[rediger | rediger kilde]

Pakkehåndteringssystemer har ansvar for å organisere alle pakkene som er installert på et system og vedlikeholde deres brukbarhet. Sjekksumverifikasjon sørger for at pakkene ikke har blitt korrupte i løpet av overføringen til systemet. Digitale signaturer sørger for at pakkene kommer fra en utgiver som brukeren har bedt systemet om å stole på. Pakkesystemet sørger for enkel installasjon, oppgradering, sikkerhetsoppdatering, fjerning av pakker; og at alle pakkene som trengs for at en programvare skal fungere blir installert. Pakkesystemene inneholder også ofte gruppering, klassifisering og rangering av pakkene for å eliminere forvirring rundt hvilken type pakke brukeren ønsker å installere.

Det er vanlig at pakkehåndteringsystemene baserer seg på enkle bakstykker, som gjør den egentlige jobben med å installere pakker. For eksempel er yum avhengig av rpm og apt er avhengig av dpkg.


Konvertering av binærpakker[rediger | rediger kilde]

Utdypende artikkel: Alien (programvare)

Alien er et program som konverterer mellom forskjellige Linux pakkeformeter. Det støtter konvertering mellom rpm (del av Linux Standard Base), deb, Stampede (.slp) og Slackware (tgz) pakker.

Vedlikehold og konfigurering[rediger | rediger kilde]

Upgradering av konfigurasjonsfiler er en kilde til mange problemer ved oppgradering av programvare. Siden pakkesystemer, ihvertfall i Unix systemer, er utvidelser av filarkiveringsverktøy, kan de vanligvis enten overskrive eller beholde konfigurasjonsfiler, heller enn å tilegne regler til konfigurasjonen. Det finnes imidlertid unntakelser som vanligvis gjelder kjernekonfigurasjon (som vil gjøre maskinen ubrukelig etter en omstart hvis den brytes). Problemer kan oppstå dersom filformatet til konfigurasjonsfiler endres. For eksempel, hvis eldre filformater ikke explisitt slår av nye funksjoner som burde være slått av. Noen pakkehånderingssystemer, slik som Debians dpkg tillater konfigurasjon under installasjonen. I andre situasjoner kan det være hesiktsmessig å installere pakker med en standardkonfigurasjon og deretter overskrive denne konfigurasjonen, for eksempel ved installasjon til et stort antall maskiner. Denne typen pre-konfigurert installasjon støttes også av dpkg.

Pakkekilder[rediger | rediger kilde]

For å gi brukere enkel kontroll over hvilke typer programvare som de kan installere på deres systemer (og noenganger på grunn av legale årsaker på distributørens side), blir programvare ofte lastet ned fra flere forskjellige pakkekilder.[2]

Fri-programvare-systemer[rediger | rediger kilde]

Naturen til fri programvare gjør at pakker som kommer under liknende kompatible lisenser er tilgjengelig for bruk på en rekke operativsystemer. En typisk forskjell mellom pakkehåndtering i proprietære operativsystemer, slik som Mac OS X og Windows, og de i fri programvare, slik som Linux, er at fri programvaresystemer tillater at tredjepartspakker også installeres og oppgraderes gjennom de samme mekanismene, hvor pakkesystemene i Mac OS X og Windows bare vil oppgradere programvare som tilbys av hhv. Apple og Microsoft (med unntak av noen tredjeparts enhetsdrivere i Windows).

Pakkehåndtering vs installasjonsprogrammer[rediger | rediger kilde]

Pakkesystem Installasjonsprogram
Typisk en del av operativsystemet. Hvert produkt kommer sammen med dets eget installasjonsprogram.
Bruker en enkelt installasjonsdatabase. Hvert enkelt program holder rede på hvilke pakker som hører til det aktuelle programmet.
Kan verifisere og håndtere alle pakkene på systemet. Virker bare med det medfølgende produktet.
Én pakkesystem leverandør for alle programmer som installeres på datamaskinen. Flere forskjellige installasjonsprogramleverandører.
Ett enkelt pakkeformat. Flere installasjonsformater.

Forskjellige pakkesystemer[rediger | rediger kilde]

Debian-baserte[rediger | rediger kilde]

  • dpkg, utvikles av Debian, men brukes også av andre distribusjoner, bruker filendingen .deb og var det første til å ha et avhengighetsløsende verktøy (apt).
  • ipkg[3] er et dpkg-inspirert lettvekts-system for blant annet håndholdte enheter.

RPM-baserte[rediger | rediger kilde]

Tar-baserte[rediger | rediger kilde]

uavhengige av pakkeformat[rediger | rediger kilde]

  • Portage og emerge brukes av Gentoo. De ble inspirert av BSDs ports system og bruker skript kalt ebuild for å kompilere og installere programvare. Selv om systemet baserer seg på kildekode, tilbys også enkelte pakker ferdigkompilert.
  • Ports bruker et system av makefiler for å installere programvare fra kildekode eller binærfiler.
  • Smart Package Manager kan bruke både .deb- og .rpm-pakker.

Andre pakkeformat[rediger | rediger kilde]

Uavhengig av pakkeformat, tilbyr de aller fleste linuxdistribusjoner både binær- og kildekodepakker. Kildekodepakkene kompileres automatisk av pakkehåndtereren, slik at brukeren ikke merker noen forskjell.

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]