Pakkesystem

Et pakkesystem eller en pakkebehandler er en samling dataprogrammer som automatiserer installering, oppgradering, konfigurering og fjerning av programvarepakker på en datamaskins operativsystem. Eliminasjon av manuelle installeringer og oppdateringer, er spesielt nyttig for store virksomheter, der operativsystemet kan inneholde opptil titusenvis av programvarepakker.
En programvarepakke har et pakkeformat. Den består av programvare og data som er lagret i en eller flere arkivfiler (vanligvis én enkelt datafil). Arkiverte datafiler kan være ordnet i katalogstrukturer, og kan være komprimerte for å oppta mindre lagringsplass. Arkivfiler kan også inneholde innebygd kryptering.
Pakkene inneholder ofte metadata, slik som navnet på programvaren, en beskrivelse av programvarens oppgave og hensikt, versjonsnummer, utgiver, sjekksum og en liste over avhengigheter til andre programmer som er nødvendige for at programmet skal kjøre skikkelig. Under installering blir slike metadata vanligvis lagret i en lokal pakkedatabase. Denne pakkedatabasen forteller pakkebehandleren om hvorvidt forutsetningene er tilstede eller ikke for en gitt programvare.
Programvarepakker er vanligvis lagret i et programvarelager eller en mobilapplikasjonsbutikk som er tilgjengelig over internett. I slike tilfeller samarbeider og kommuniserer pakkebehandleren med en binærlagerbehandler over et datanett.
Den første pakkebehandleren var dpkg, som ble lansert for Linuxdistribusjonen Debian i januar 1994. I august 1994 kom pakkesystemet FreeBSD Ports for FreeBSD. I 1997 lanserte programvareselskapet Red Hat pakkebehandleren RPM Package Manager (RPM). RPM har fått stor utbredelse, og filformatet til RPM ble adoptert av Linux Standard Base (kompatibilitet med POSIX og Single UNIX Specification). Det finnes også flere pakkebehandlere, og de er omtalt i artikkelen.

Funksjoner

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

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

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

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.

Fri-programvare-systemer

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).

Betydning

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».