Product SiteDocumentation Site

Kapittel 5. Pakkesystem: Verktøy og grunnleggende prinsipper

5.1. Binær pakkestruktur
5.2. Meta pakkeinformasjon
5.2.1. Bekrivelse; kontroll-filen
5.2.2. Oppsettsskript
5.2.3. Checksums, Liste med konfiguasjonsfiler
5.3. Kildepakkens struktur
5.3.1. Format
5.3.2. Bruk i Debian
5.4. Behandle pakker med dpkg
5.4.1. Å installere pakker
5.4.2. Fjerning av pakke
5.4.3. Spørre databasen til dpkg, og inspisere .deb-filer
5.4.4. dpkgs loggfil
5.4.5. Støtte for multiarkitektur
5.5. Sameksistens med andre pakkesystemer
Som Debian-systemadministrator vil du rutinemessig håndtere .deb-pakker, siden de inneholder konsistente funksjonelle enheter (programmer, dokumentasjon, etc.), som gjør installasjon og vedlikehold mulig. Det er derfor en god idé å vite hva de er, og hvordan du bruker dem.
Dette kapitlet beskriver strukturen og innholdet av «binære»- og «kilde»-pakker. De første er .deb-filer, som kan brukes direkte av dpkg, mens sistnevnte inneholder kildekoden, så vel som instruksjoner for å bygge binære pakker.

5.1. Binær pakkestruktur

Pakkeformatet til Debian er utformet slik at innholdet kan pakkes ut i et Unix-system som har de klassiske kommandoene ar, tar, og gzip (noen ganger trengs xz, eller bzip2). Denne tilsynelatende trivielle egenskapen er viktig for overførbarheten og gjenoppretting etter alvorlige uhell.
Forestill deg, for eksempel, at du ved en feil har slettet dpkg-programmet, og at du ikke lenger kunne installere Debian-pakker. Ettersom dpkg selv er en Debian-pakke, ville det virke som om systemet ditt var ferdig ... Heldigvis vet du formatet for en pakke, og kan derfor laste ned .deb-filen til dpkg-pakken, og installere den manuelt (se sidemeny VERKTØY dpkg, APT, og ar). Hvis, ved et uhell, en eller flere av programmene ar, tar eller gzip/xz/bzip2 har forsvunnet, trenger du bare å kopiere det manglende programmet fra et annet system (siden hver av disse opererer helt selvstendig, uten avhengigheter, er en enkel kopi tilstrekkelig). Hvis systemet møter en enda mer uheldig skjebne, slik at selv disse ikke fungerer (kanskje de dypeste systembiblioteker mangler?), skal du prøve den statiske versjonen av busybox (fremskaffet fra busybox-static-pakken), som er enda mer selvstendig, og gir delkommandoer som busybox ar, busybox tar og busybox gunzip.
Kast et blikk på innholdet i en .deb-fil:
$ ar t dpkg_1.17.23_amd64.deb
debian-binary
control.tar.gz
data.tar.gz
$ ar x dpkg_1.17.23_amd64.deb
$ ls
control.tar.gz  data.tar.gz  debian-binary  dpkg_1.17.23_amd64.deb
$ tar tzf data.tar.gz | head -n 15
./
./var/
./var/lib/
./var/lib/dpkg/
./var/lib/dpkg/parts/
./var/lib/dpkg/info/
./var/lib/dpkg/alternatives/
./var/lib/dpkg/updates/
./etc/
./etc/logrotate.d/
./etc/logrotate.d/dpkg
./etc/dpkg/
./etc/dpkg/dpkg.cfg.d/
./etc/dpkg/dpkg.cfg
./etc/alternatives/
$ tar tzf control.tar.gz
./
./conffiles
./postinst
./md5sums
./prerm
./preinst
./control
./postrm
$ cat debian-binary
2.0
Som du kan se, ar-arkivet i en Debian-pakke omfattes av tre filer:
  • debian-binary. Dette er en tekstfil som i enkelhet indikerer versjonen av den benyttede .deb-filen (i 2015: versjon 2.0).
  • control.tar.gz. Denne arkivfilen inneholder all tilgjengelig meta-informasjon, som navn og pakkens versjon. Noe av denne meta-informasjonen tillater pakkehåndteringsverktøyene å fastslå om det er mulig å installere eller avinstallere den, for eksempel ut fra listen over pakker som allerede er på maskinen.
  • data.tar.gz. Dette arkivet inneholder alle filene i pakken som kan pakkes ut. Dette er der kjørbare filer, dokumentasjon, etc., alle er lagret. Noen pakker kan bruke andre komprimeringsformater, og da filen vil bli navngitt annerledes (data.tar.bz2 for bzip2, data.tar.xz for XZ).