Product SiteDocumentation Site

Hoofdstuk 5. Pakketten Systeem: Gereedschap en Fundamentele Principes

5.1. Structuur van een Binair Pakket
5.2. Pakket Meta Informatie
5.2.1. Omschrijving: het control Bestand
5.2.2. Configuratie Scripts
5.2.3. Checksums, Lijsten van Configuratie Bestanden
5.3. Structuur van een Bron Pakket
5.3.1. Vorm
5.3.2. Gebruik binnen Debian
5.4. Pakketten Manipuleren met dpkg
5.4.1. Pakketten Installeren
5.4.2. Pakket verwijdering
5.4.3. De Databank van dpkg bevragen en .deb bestanden inspecteren
5.4.4. Het log bestand van dpkg
5.4.5. Multi-Arch Ondersteuning
5.5. Gelijktijdig bestaan met Andere Besturingssystemen
Als een Debian systeem beheerder, zal je routinematig .deb pakketten behandelen, omdat ze consistente functionele eenheden bevatten (applicaties, documentatie, enz.), wiens installatie en onderhoud ze faciliteren. Het is daarom een goed idee om te weten wat ze zijn en hoe ze te gebruiken.
Dit hoofdstuk beschrijft de structuur en inhoud van “binaire” en “bron” pakketten. De eerste zijn .deb bestanden, rechtstreeks bruikbaar door dpkg, terwijl de laatste de bron code bevatten en instructies om het binaire pakket te bouwen.

5.1. Structuur van een Binair Pakket

Het Debian pakket formaat is ontworpen zo dat de inhoud ge-extraheert kan worden op ieder Unix systeem dat de klassieke commando's ar, tar en gzip (soms xz of bzip2) heeft. Dit lijkt een triviale eigenschap maar is belangrijk, vooral voor draagbaarheid en ramphestel.
Beeld je in, bij voorbeeld, dat je per ongeluk het dpkg programma wist en dat je dus geen Debian pakketten meer kunt installeren. dpkg wat zelf een Debian pakket is, zou je doen denken dat je systeem er aan is... Gelukkig ken je het formaat van een pakket en kan daarom het .deb bestand van het dpkg pakket downloaden en handmatig installeren (zie marge GEREEDSCHAP dpkg, APT en ar). Indien door ongeluk meerdere van de programma's zoals ar, tar of gzip/xz/bzip2 zijn verdwenen, moet je enkel het ontbrekende programma van een ander systeem kopieren (omdat ieder handeling hier volledig onafhankelijk is, zonder afhankelijkheden, is een simpele kopie voldoende). Als jouw systeem last heeft van buitensporig ongeluk en zelfs deze niet werken (misschien ontbreken de diepste systeem bibliotheken?) zou je de statische versie van busybox moeten proberen (aangeboden in het busybox-static pakket), welke zelfs meer op zichzelf staand is, en sub commando's aanbied zoals busybox ar, busybox- tar en busybox gunzip.
Kijk naar de inhoud van een .deb bestand:
$ ar t dpkg_1.17.23_amd64.deb
debian-binary
control.tar.gz
data.tar.gz
$ ar  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
Zoals je kunt zien bestaat het ar archief van een Debian pakket drie bestanden:
  • debian-binary. Dit is een tekst bestand welke simpel de versie van het gebruikte .deb bestand aangeeft (in 2015: versie 2.0).
  • control.tar.gz. Dit archief bestand bevat al de beschikbare meta-informatie, zoals de naam en versie van het pakket. Sommige van deze meta-informatie laat pakket beheersprogramma's toe om vast te stellen of het mogelijk is of het mogelijk is het te installeren of verwijderen, bij voorbeeld volgens de lijst van pakketten reeds op de machine.
  • data.tar.gz. Dit archief bevat al de programma's die ge-extraheert moeten worden uit het pakket; dit is waar de uitvoerbare bestanden, documenten, enz. zijn opgeslagen. Bepaalde pakketten kunnen andere compressie formaten gebruiken, in dat geval zal de naam van het bestand anders zijn (data.tar.bz2 voor bzip2, data.tar.xz voor XZ).