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ær»- og «kilde»-pakker. Førstnevnte er filer, som kan brukes direkte av dpkg, mens sistnevnte inneholder kildekoden, så vel som instruksjoner for bygging av binære pakker.
	
			Pakkeformatet til Debian er utformet slik at innholdet kan pakkes ut i et Unix-system som har de klassiske kommandoene ar, tar, og xz eller noen ganger gzip eller bzip2. Denne tilsynelatende trivielle egenskapen er viktig for å virke på mange plattformer og for gjenoppretting etter alvorlige uhell.
		
			Forestill deg, for eksempel, at du ved en feil har slettet 
dpkg-programmet, og at du ikke lenger kan installere Debian-pakker. Ettersom selve 
dpkg er en Debian-pakke virker det hele håpløst ... Heldigvis vet du formatet for pakker, og kan derfor 
laste ned .deb-filen tilhørende 
dpkg-pakken, og installere den manuelt (sjekk sidefeltet 
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 å en kopi av det manglende programmet fra et annet system (siden hver av disse opererer helt selvstendig, uten avhengigheter). Hvis systemet kneler enda mer, slik at selv disse ikke fungerer (kanskje de mest grunnleggende systembibliotekene mangler?), kan 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 xz.
		
			Ta en titt på innholdet i en .deb-fil:
		
$ ar t dpkg_1.20.9_amd64.deb
debian-binary
control.tar.gz
data.tar.xz
$ ar x dpkg_1.20.9_amd64.deb
$ ls
control.tar.gz  data.tar.xz  debian-binary  dpkg_1.20.9_amd64.deb
$ tar tJf data.tar.xz | head -n 16
./
./etc/
./etc/alternatives/
./etc/alternatives/README
./etc/cron.daily/
./etc/cron.daily/dpkg
./etc/dpkg/
./etc/dpkg/dpkg.cfg
./etc/dpkg/dpkg.cfg.d/
./etc/logrotate.d/
./etc/logrotate.d/alternatives
./etc/logrotate.d/dpkg
./sbin/
./sbin/start-stop-daemon
./usr/
./usr/bin/
$ tar tJf control.tar.xz
./
./conffiles
./control
./md5sums
./postrm
$ cat debian-binary
2.0
			Som du kan se, inneholder ar-arkivet i en Debian-pakke tre filer:
		
debian-binary
						Dette er en tekstfil som ganske enkelt indikerer versjonen til filformatet til .deb-filpakken. I Debian Bullseye er den fremdeles versjon 2.0.
					
control.tar.xz
						Denne arkivfilen inneholder all tilgjengelig metainformasjon, for eksempel pakkens navn og versjon, samt noen skript som skal kjøres før, under eller etter (av-)installasjon av den. Noe av metainformasjonen gjør det mulig for pakkeadministrasjonsverktøyet å avgjøre om det er mulig å installere eller avinstallere den, for eksempel vurdert opp mot listen over pakker som allerede er på maskinen, og om utsendte filer er endret lokalt.
					
data.tar.xz, data.tar.bz2, data.tar.gz
						Dette arkivet inneholder alle filene som skal pakkes ut fra pakken; Det er her de kjørbare filene, bibliotekene, dokumentasjonen og så videre, er lagret. Pakker kan bruke forskjellige sammenpakkingsformater, i sådant fall vil filen navngis annerledes for xz, bzip2 eller gzip.