Product SiteDocumentation Site

Kapitel 5. Paketierungssystem: Hilfsprogramme und grundlegende Prinzipien

5.1. Struktur eines Binärpakets
5.2. Paket-Meta-Information
5.2.1. Beschreibung: Die control-Datei
5.2.2. Konfigurationsskripte
5.2.3. Checksummen, Liste der Konfigurationsdateien
5.3. Struktur eines Quellpakets
5.3.1. Format
5.3.2. Verwendung innerhalb von Debian
5.4. Pakete mit dpkg handhaben
5.4.1. Pakete installieren
5.4.2. Paketentfernung
5.4.3. Abfragen der Datenbank von dpkg und Untersuchen der .deb-Dateien
5.4.4. dpkgs Protokolldatei
5.4.5. Multi-Arch Unterstützung
5.5. Koexistenz mit anderen Paketierungssystemen
Als Debian-Systemadministrator werden Sie regelmäßig mit .deb-Paketen umgehen, da sie festgelegte funktionale Einheiten (Anwendungen, Dokumentation usw.) enthalten, deren Installation und Wartung sie vereinfachen. Deshalb ist es gut zu wissen, was sie sind und wie man sie benutzt.
Dieses Kapitel beschreibt die Struktur und den Inhalt von „Binär“- und „Quell“-Paketen. Erstere sind .deb-Dateien, die direkt mit dem Befehl dpkg benutzt werden können, während letztere den Programm-Quellcode sowie Anweisungen zum Bau von Binärpaketen enthalten.

5.1. Struktur eines Binärpakets

Das Debian-Paketformat ist so gestaltet, dass sein Inhalt auf jedem Unixsystem entpackt werden kann, das über die klassischen Befehle ar, tar und gzip (manchmal auch xz oder bzip2) verfügt. Diese eigentlich triviale Anforderung ist wichtig für die Portierbarkeit und Wiederherstellung.
Nehmen Sie zum Beispiel an, dass Sie aus Versehen das Programm dpkg gelöscht haben, und dass Sie daher keine Debian-Pakete mehr installieren können. Da dpkg selbst ein Debian-Paket ist, sieht es so aus, als ob ihr System erledigt sei... Zum Glück kennen Sie das Format eines Pakets und können daher die .deb-Datei des dpkg-Pakets herunterladen und es manuell installieren (siehe Seitenleiste HILFSPROGRAMME dpkg, APT und ar). Wenn durch ein Missgeschick eines oder mehrere der Programme ar, tar oder gzip/xz/bzip2 verschwunden sind, brauchen Sie nur das fehlende Programm von einem anderen System zu kopieren (da jedes von ihnen auf vollständig autonome Weise ohne Abhängigkeiten arbeitet, reicht einfaches Kopieren).
Werfen Sie einen Blick auf den Inhalt einer .deb-Datei:
$ 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
Wie Sie sehen, besteht das ar-Archiv eines Debian-Pakets aus drei Dateien:
  • debian-binary. Dies ist eine Textdatei, die lediglich die Version der verwendeten .deb-Datei angibt (2015: Version 2.0).
  • control.tar.gz. Diese Archivdatei enthält alle verfügbaren Meta-Informationen, wie Name und die Version des Paketes. Teile dieser Meta-Information ermöglicht es Paket-Management-Werkzeugen festzustellen, ob die enthaltenen Programme, zum Beispiel unter Beachtung der Liste der bereits auf dem Gerät installierten Pakete, installiert oder deinstalliert werden können.
  • data.tar.gz. Dieses Archiv enthält alle Dateien, die aus dem Paket entpackt werden sollen; hier sind die ausführbaren Dateien, die Dokumentation usw. gespeichert. Möglicherweise verwenden einige Pakete andere Komprimierungsformate, wobei die Datei dann anders heißt (data.tar.bz2 für bzip2, data.tar.xz für XZ).