Som et Debian system administrator, 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 kapittelet 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.
Debian pakkeformat er utformet slik at innholdet kan pakkes ut i et Unix-system som har de klassiske kommandoer ar
, tar
, og gzip
(sometimes xz
eller bzip2
). Denne tilsynelatende trivielle egenskapen er viktig for overførbarhet og gjenoppretting etter alvorlige uhell.
Forestill deg, for eksempel, at du ved en feil har slettet
dpkg
programmet, og at du ikkelenger kunne installere Debian pakker. Ettersom
dpkg
selv er en Debian pakke, det ville virke som om det var gjort for systemet ditt... Heldigvis vet du formatet for en pakke og kan derfor laste ned
.deb
-filen til
dpkg pakken og installere den manuelt (se sidemeny
TOOLS dpkg
, APT
and ar
). Hvis, ved et uhell en eller flere av programmene
ar
,
tar
eller
gzip
/
xz
/
bzip2
har forsvunnet, tenger 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
and
busybox gunzip
.
Kasgt 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
Spom 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).