4.1. Konzepte und Ideen dahinter

Die Paketbeschreibung ist eine Textdatei[16]. Die Paketbeschreibung in den Paketen selbst erfolgt in englischer Sprache, wird aber für die Paketlisten auf den Spiegelservern von Debians Übersetzungsteams auch in andere Sprachen übersetzt.

Jedes Element der Beschreibung ist ein Schlüssel-Wert-Paar, wobei die Trennung zwischen Schlüssel und Wert durch einen Doppelpunkt erfolgt. Der Schlüssel ist ein aus der Umgangssprache abgeleiteter Begriff, der die Relation zwischen zwei oder mehr Paketen näher beschreibt. Wert ist hingegen eine Aufzählung von Paketen, die mit einem Komma voneinander getrennt werden. Ein ähnliches Konzept kommt bei den Kopfzeilen von E-Mails zum Tragen.

Zusätzlich kann ein Wert mit einer Aussage zu einer bestimmten Softwareversion ergänzt worden sein. Eine solche versionierte Abhängigkeit kann unterschiedliche Relationen umfassen. Tabelle 4.1, „Relationen für versionierte Abhängigkeiten“ zeigt die derzeit zulässigen Operatoren samt einem Beispiel aus der Praxis.

Tabelle 4.1. Relationen für versionierte Abhängigkeiten

Operator Beschreibung Beispiel

<<

früher als

xpdf-utils (<< 3.00)

<=

früher oder gleich

python-cairo (<= 1.85)

=

exakt gleich

xfwm4 (= 4.1)

>=

gleich oder später

libc6 (>= 2.4)

>>

später als

libaa1 (>> 1.4)


4.1.1. Binärpakete

Die folgenden Schlüsselworte werden in Binärpaketen (siehe Abschnitt 2.7.1, „Binärpakete (deb)“) und den Paketlisten von diesen verwendet:

Package
zu dt.: Paket; Name des Pakets ohne Versionsnummer und Architektur, siehe auch Benennung eines Debian-Pakets in Abschnitt 2.11, „Benennung einer Paketdatei“
Source
zu dt.: Quelle; Name des Quellpakets („source package“), aus dem das Binärpaket gebaut wurde, siehe auch Sourcepakete in Abschnitt 2.7.4, „Source-Pakete (dsc und weitere Dateien)“
Version
zu dt.: Version oder Variante; Versionsnummer des Pakets, siehe Benennung eines Debian-Pakets in Abschnitt 2.11, „Benennung einer Paketdatei“
Architecture
zu dt. Architektur oder Plattform; Basis, für die das Paket gebaut wurde oder all, falls das Paket architekturunabhängig ist, siehe Debian-Architekturen in Abschnitt 1.2, „Debian-Architekturen“
Maintainer
zu dt.: Betreuer, Verantwortlicher; Für das Paket verantwortliche Person oder Gruppe („Maintainer“ des Pakets) und dessen Erreichbarkeit als E-Mail-Adresse (siehe auch Paket nach Maintainer finden in Abschnitt 8.21, „Paket nach Maintainer finden“)
Homepage
zu dt.: Internetpräsenz; Webseite des Projekts der paketierten Software oder Daten
Installed-Size
zu dt.: Installationsgröße; Speicherplatz, den das Paket auf dem Zielsystem belegen wird, nachdem es dort installiert wurde
Depends
zu dt.: hängt ab von; Name der installierten und konfigurierten Pakete und ggf. deren Versionsnummer, von dem das vorliegende Paket abhängt
Pre-Depends
zu dt.: hängt ab vorher von; Name der installierten und konfigurierten Pakete und ggf. deren Versionsnummer, von dem das vorliegende Paket und dessen Installationsskripte abhängen. Dies bedeutet, dass diese Abhängigkeiten vollständig installiert und ausgepackt sein müssen, bevor das Paket von dpkg ausgepackt werden darf.
Recommends
zu dt.: empfiehlt; Name der Pakete, welche als Ergänzung empfohlen werden und in den meisten Fällen ebenfalls gebraucht werden. Es ist ein Gegenstück zum Schlüsselwort Enhances.
Suggests
zu dt.: schlägt vor; Name der Pakete, welche als Ergänzung empfohlen werden. Es ist ein Gegenstück zum Schlüsselwort Enhances
Conflicts
zu dt.: kollidiert bzw. steht in Konflikt mit; Name der Pakete und ggf. deren Versionsnummer, mit denen es nicht gleichzeitig installiert sein darf
Breaks
zu dt.: bricht, verhindert, beschädigt; Name der Pakete und ggf. deren Versionsnummer, mit denen es nicht gleichzeitig verwendet werden kann
Enhances
zu dt.: erweitert, ergänzt, wertet auf; Benennt das Paket, welches es erweitert. Es ist das Gegenstück zu den Schlüsselworten Suggests und Recommends
Replaces
zu dt.: ersetzt; Name der Pakete, dessen Dateien es (teilweise) ersetzt
Provides
zu dt.: stellt bereit; Name der virtuellen Pakete, welche es bereitstellt, siehe Virtuelle Pakete in Abschnitt 2.7.5, „Virtuelle Pakete“
Section
zu dt.: Sektion oder Paketkategorie, in die das Paket einsortiert ist, siehe Paketkategorien in Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“
Priority
zu dt.: Priorität; Prioritätsstufe des Pakets, siehe Paket-Priorität und essentielle Pakete in Abschnitt 2.13, „Paket-Priorität und essentielle Pakete“
Essential
zu dt.: essentiell; Ihr Debian-System kann kaputt gehen, wenn dieses Paket entfernt wird, siehe dazu auch Markierung Essentiell in Abschnitt 2.13.6, „Markierung „essentiell“ (essential)“
Description
zu dt.: Beschreibung; Dieses Feld enthält die Paketbeschreibung. Dabei ist die erste Zeile ein kurzer, einzeiliger Text und die darauf folgenden, eingerückten Zeilen beinhalten eine lange und ggf. über mehrere Absätze gehende, ausführlichere Beschreibung. Zwischen der Kurz- und Langbeschreibung kann auch ein Punkt (.) stehen.
Built-Using
zu dt.: gebaut mit; Dieses Feld muss gemäß Debian Policy Manual §7.8 [Debian-Policy-Manual] vorhanden sein, sofern der Inhalt des Binärpakets nicht nur aus Quellcode aus dessen Quellpaket besteht und die Lizenz dieses Quellpakets vorschreibt, dass auch sämtlicher mit einkompilierter Quellcode frei verfügbar sein muss. Dies ist z.B. der Fall, wenn eine unter GNU GPL stehende Software statisch kompiliert wird oder Quellcode unter GNU GPL aus einem anderen Paket in das Binärpaket hineinkopiert wird (bspw. bei Stylesheets oder Hintergrundbildern für generierte Dokumentationen im HTML-Format).

Das nachfolgende Beispiel zeigt alle genutzten Elemente anhand der PDF-Bibliothek poppler-utils:

 Package: poppler-utils
 Source: poppler
 Version: 0.18.4-6
 Architecture: amd64
 Maintainer: Loic Minier <lool@dooz.org>
 Installed-Size: 445
 Depends: libc6 (>= 2.4), libcairo2 (>= 1.10.0), libfreetype6 (>= 2.2.1), liblcms1 (>= 1.15-1), libpoppler19 (>= 0.18.4), libstdc++6 (>= 4.1.1)
 Recommends: ghostscript
 Conflicts: pdftohtml
 Breaks: xpdf-utils (<< 3.02-2~)
 Replaces: pdftohtml, xpdf-reader, xpdf-utils (<< 3.02-2~)
 Provides: pdftohtml, xpdf-utils
 Section: utils
 Priority: optional
 Multi-Arch: foreign
 Homepage: http://poppler.freedesktop.org/
 Description: PDF utilities (based on Poppler)
  Poppler is a PDF rendering library based on Xpdf PDF viewer.
  .
  This package contains command line utilities (based on Poppler) for getting
  information of PDF documents, convert them to other formats, or manipulate
  them:
   * pdffonts -- font analyzer
   * pdfimages -- image extractor
   * pdfinfo -- document information
   * pdfseparate -- page extraction tool
   * pdftocairo -- PDF to PNG/JPEG/PDF/PS/EPS/SVG converter using Cairo
   * pdftohtml -- PDF to HTML converter
   * pdftoppm -- PDF to PPM/PNG/JPEG image converter
   * pdftops -- PDF to PostScript (PS) converter
   * pdftotext -- text extraction
   * pdfunite -- document merging tool

4.1.2. Sourcepakete

In Sourcepaketen (siehe Abschnitt 2.7.4, „Source-Pakete (dsc und weitere Dateien)“) sind neben den weiter oben genannten Schlüsselworten auch die folgenden Einträge zulässig:

Source
zu dt.: Quelle; Name des Quellpakets.
Binary
zu dt.: Binärdatei; Liste aller Binärpakete, die aus diesem Quellpaket gebaut werden.
Package-List
zu dt. Paketliste; Auflistung aller Binärpakete, die aus diesem Quellpaket gebaut werden. Zusätzlich werden das Paketformat (deb oder udeb), die Paketkategorie („Sektion“), die Priorität und die Architektur benannt.
Format
zu dt.: Format; verwendetes Format des Quellpakets, z.B. 1.0, 3.0 (quilt) oder 3.0 (native) (siehe Aufbau und Format in Abschnitt 4.2, „Aufbau und Format“).
Architecture
zu dt. Architektur oder Plattform; Im Gegensatz zu den Binärpaketen sind hier mehr als nur eine einzige Architektur zulässig. Es beinhaltet alle Architekturen, auf denen das Paket gebaut werden kann. Der Wert any bedeutet, dass das Paket auf jeder Architektur gebaut werden kann und soll (siehe Abschnitt 1.2, „Debian-Architekturen“).
Uploaders
zu dt.: Hochlader; bezeichnet die Liste der Co-Maintainer und Beitragenden des Pakets.
Standards-Version
zu dt.: Version der Standardisierung; Angabe, welcher Version des Debian Policy Manuals [Debian-Policy-Manual] dieses Paket entspricht.
Vcs-Git, Vcs-Svn, Vcs-Hg, Vcs-Cvs, Vcs-Mtn
zu dt.: Versionskontrollsystem; Angabe, von wo Sie eine aktuelle Entwicklungskopie des Quellpakets aus einem Versionskontrollsystems auschecken können.
Vcs-Browser
zu dt.: Versionskontrollsystem und Webbrowser; URL einer Webansicht des unter Vcs-Git u.a. genannten Repositories des Versionskontrollsystems.
Build-Depends
zu dt.: Abhängigkeiten beim Bauen von Paketen; Pakete, die notwendig sind, um alle architektur-abhängigen Binärpakete aus diesem Quellpaket zu bauen, sowie um das Build-Verzeichnis zu säubern („clean“-Ziel). Pakete, die als „essential“ (unbedingt notwendig) oder „build-essential“ (für den Bau von Paketen unbedingt notwendig) markiert sind, müssen nicht aufgelistet werden (Kommt fast immer vor.)
Build-Depends-Indep
zu dt.: Abhängigkeiten beim Bauen von Paketen (architekturunabhängig); Pakete, die zusätzlich zu den unter Build-Depends aufgelisteten Paketen notwendig sind, um auch die architektur-unabhängigen Pakete aus diesem Quellpaket zu bauen. Hier sind meist die Pakete aufgelistet, die notwendig sind, um die Dokumentation oder Übersetzungsdateien zu bauen. (Kommt meist nur bei komplexeren Quellpaketen vor.)
Build-Conflicts
zu dt. Bau-Konflikte; Pakete, die nicht installiert sein dürfen, wenn die architektur-abhängigen Binärpakete aus diesem Quellpaket gebaut werden sollen. Dies sind meistens Pakete, die das configure-Skript beim Testen der notwendigen Bibliotheken stören oder aber Pakete, die zusätzliche, unerwünschte Abhängigkeiten in den gebauten Binärpaketen verursachen würden. (Kommt selten vor.)
Build-Conflicts-Indep
zu dt. Bau-Konflikte (architekturunabhängig); Pakete, die nicht installiert sein dürfen, wenn die architektur-unabhängigen Binärpakete aus diesem Quellpaket gebaut werden sollen. (Kommt sehr selten vor.)
Files, Checksums-Sha1, Checksums-Sha256
MD5-, SHA1- und SHA256-Checksummen sowie Dateinamen und -größen der enthaltenen Quellcode-Archive.
Testsuite
Optionales Feld, das angibt, mit welchem Programm das installierte Paket auf Funktionalität getestet werden kann. Derzeit ist der einzige mögliche Wert autopkgtest (siehe Debian Enhancement Proposal DEP 8 [DEP-8] und das gleichnamige Debianpaket dazu [Debian-Paket-autopkgtest].

4.1.3. Weitere Metadaten

In den Paketlisten unter /var/lib/apt/lists/ sind außerdem noch weitere generierte Metadaten zu den Paketen enthalten. Das beinhaltet bspw. die Debian Tags (siehe Kapitel 13, Erweiterte Paketklassifikation mit Debtags), den Pfad und Dateinamen im Paketmirror, die Paketgröße und verschiedene Prüfsummen. Letztere dienen dazu, sicherzustellen, dass die Pakete fehlerfrei zwischen dem Paketmirror und ihrem Debian-System übertragen wurden und es zwischenzeitlich keine Veränderungen gab (siehe dazu Paketquelle überprüfen in Abschnitt 3.12, „Paketquelle auf Echtheit überprüfen“ und Bezogenes Paket verifizieren in Abschnitt 8.35, „Bezogenes Paket verifizieren (GPG-Key)“).

Das Paket poppler-utils umfasst beispielsweise die folgenden Metadaten:

Description-md5: cd43e3ed14322253876488d6f9911888
Tag: implemented-in::c++, interface::commandline, role::program,
 scope::utility, use::converting, use::filtering,
 works-with-format::pdf, works-with-format::xml, works-with::text
Filename: pool/main/p/poppler/poppler-utils_0.18.4-6_amd64.deb
Size: 162034
MD5sum: 0f0254920f85b6190ba7b03f4d2a7d73
SHA1: 77fb9d39145c60421462a8fe8315d0adaa49a38c
SHA256: 38f2d13ccddac9e3d05abff7c5fab353d3fea550c8f39293850651e03c3f8be4


[16] früher teilweise im Encoding ISO 8859-1, heute nur noch in UTF-8