# 1. Überblick über die Werkzeuge der Debian-Betreuer

Dieser Abschnitt enthält eine grobe Übersicht über die Werkzeuge, die Betreuern zur Verfügung stehen. Das Folgende ist beileibe nicht vollständig oder maßgeblich, sondern nur eine Anleitung für einige der beliebstesten Werkzeuge.

Debian-Betreuerwerkzeuge sind dazu gedacht, Entwicklern zu helfen und Zeit für wirklich kritische Aufgaben nutzen zu können. Wie schon Larry Wall sagte, gibt es mehr als einen Weg, um etwas zu erledigen.

Einige Paktebetreuer bevorzugen die Benutzung von hochentwickelten Paketverwaltungswerkzeugen, andere wiederum nicht. Debian ist dies egal. Jedes Werkzeug ist gut was das diese Aufgabe erfüllt. Daher ist dieser Abschnitt nicht dazu gedacht, jemandem vorzuschreiben, welche Werkzeuge er benutzen oder wie er mit seinen Pflichten als Betreuer umgehen soll. Er ist auch nicht dazu gedacht, ein besonderes Werkzeug zu befürworten, um ein anderes auszuschließen.

Die meisten Beschreibungen dieser Pakete entstammen selbst den tatsächlichen Paketbeschreibungen. Weitere Informationen zu den Pakten sind in der Paketbeschreibung selbst zu finden. Sie können außerdem mit dem Befehl `apt-cache show` Paketname zusätzliche Informationen abrufen.

## 1.1. Hauptwerkzeuge

Die folgenden Werkzeuge werden größtenteils von jedem Betreuer benötigt.

### 1.1.1. `dpkg-dev`

`dpkg-dev` enthält die Werkzeuge (einschließlich `dpkg-source`), die benötigt werden, um Debian-Pakete zu entpacken, zu erstellen und hochzuladen. Diese Hilfswerkzeuge enthalten die entsprechend untergeordneten Funktionalitäten, die zum Erstellen und Manipulieren von Paketen benötigt werden; als solche sind diese für jeden Debian-Betreuer erforderlich.

### 1.1.2. `debconf`

`debconf` stellt eine einheitliche Schnittstelle zur Verfügung, um Pakete interaktiv konfigurieren zu können. Es gibt unterschiedliche Bedienoberflächen, d.h. es erlaubt Endanwendern, Pakete mit einer reinen Textoberfläche, einer HTML-Oberfläche oder einer Dialogoberfläche zu konfigurieren. Neue Bedienoberflächen können als Module hinzugefügt werden.

Dokumentation für dieses Paket ist im Paket `debconf-doc` enthalten.

Viele sind der Ansicht, dieses System sollte für alle Pakete verwendet werden, die eine interaktive Konfiguration erfordern; siehe Konfigurationsverwaltung mit debconf. Derzeit ist `debconf` nicht in den Debian-Richtlinien vorgeschrieben, was sich aber zukünftig ändern könnte.

### 1.1.3. `fakeroot`

`fakeroot` simuliert Root-Rechte. Dies ermöglicht Ihnen, Pakete zu erstellen, ohne Root zu sein (Pakete möchten üblicherweise Dateien mit Root-Besitzrechten installieren). Falls Sie `fakeroot` installiert haben, wird `dpkg-buildpackage` es automatisch benutzen.

## 1.2. Lint-Werkzeuge für Pakete

Gemäß dem Free On-line Dictionary of Computing (FOLDOC) ist `lint` ein Unix-Verarbeitungsprogramm für die Sprache C, das gründlichere Code-Prüfungen enthält als übliche C-Compiler. Lint-Werkzeuge für Pakete helfen Paketbetreuern, häufige Probleme und Richtlinienverletzungen in ihren Paketen automatisiert zu finden.

### 1.2.1. `lintian`

`lintian` zerlegt Debian-Pakete und gibt Informationen über Fehler und Richtlinien-Verletzungen aus. Es enthält automatisierte Prüfungen für viele Gesichtspunkte der Debian-Richtlinien, wie auch einige Prüfungen auf häufige Fehler.

Sie sollten sich regelmäßig das neueste `lintian` aus `Unstable` installieren und all Ihre Pakete überprüfen. Beachten Sie, dass die Option `-i` detaillierte Erklärungen liefert, was jeder Fehler oder jede Warnung bedeutet, was deren Grundlage in den Debian-Richtlinien ist und wie das Problem üblicherweise behoben werden kann.

Für weitere Informationen darüber wie und wann Lintian benutzt wird auf Das Paket testen verwiesen.

Sie können außerdem eine Zusammenfassung aller Probleme, die Lintian für Ihre Pakete meldet, unter https://lintian.debian.org/ abfragen. Diese Berichte enthalten die aktuellste Ausgabe von `lintian` für die ganze Entwicklungsdistribution (`Unstable`).

### 1.2.2. `lintian-brush`

`lintian-brush` enthält einen Satz an Skripten welche mehr als 80 bekannte Lintian Fehler in Debian Paketen automatisch korrigieren können.

Es kommt mit einem Wrapperskript welches die anderen Skripte aufruft, die Changelog Einträge erstellt (sofern gewünscht) und jede Änderung in die Versionskontrolle einträgt.

### 1.2.3. `piuparts`

`piuparts` ist ein Werkzeug was die `.deb` Paketinstallation, die Paketaktualisierung und das Entfernen eines Paketes testet.

`piuparts` testet das `.deb` Pakete die Installation, eine Aktualisierung und das Entfernen des Paketes korrekt ausgeführen. Dies wird durch die Installation eines Minimal Debians in einem Chroot erreicht indem wiederum die eigentliche Installation, das Upgrade und das Entfernen des Paketes ausgeführt wird und dabei den Zustand des Verzeichnisbaums am Ende der Tests mit dem Zustand vor den Tests vergleicht. `piuparts` meldet alle Dateien die hinzugefügt, entfernt oder während des Prozesses verändert worden sind.

`piuparts` ist als Qualitätsicherungswerkzeug für Personen gedacht welche `.deb` Pakete bauen und diese testen wollen bevor diese ins Debian Archive geladen werden.

### 1.2.4. `debdiff`

`debdiff` (aus dem Paket `devscripts`, devscripts) vergleicht die Dateilisten und "control"-Dateien zweier Pakete. Es ist ein einfacher Rückfalltest, der Ihnen hilft festzustellen, ob sich die Anzahl der Binärpakete seit dem letzten Upload verändert hat oder ob sich etwas in der "control"-Datei geändert hat. Natürlich werden einige Unterschiede, die ausgegeben werden, in Ordnung sein, aber es kann Ihnen helfen, verschiedene Missgeschicke zu vermeiden.

Sie können es für zusammengehörige Binärpakete ausführen:

    debdiff package_1-1_arch.deb package_2-1_arch.deb

Oder auch für zusammengehörige "changes"-Dateien:

    debdiff package_1-1_arch.changes package_2-1_arch.changes

Um weitere Informationen zu erhalten, lesen Sie debdiff 1.

### 1.2.5. `diffoscope`

`diffoscope` bietet einen detaillierten Vergleich von Dateien, Archiven und Verzeichnissen.

`diffoscope` versucht den Unterschieden zwischen Dateien oder Verzeichnissen auf den Grund zu gehen. Es entpackt rekursiv Archive vieler Art und wandelt verschiedene Binärformate in eine besser lesbare Form um, um sie zu vergleichen.

Ursprünglich wurde es entwickelt um `.deb` Dateien oder zwei `changes` Dateien zu vergleichen, inzwischen kann es zwei Tarballs, ISO-Images oder PDF Dateien genauso einfach vergleichen und unterstützt eine Vielzahl von Dateitypen.

Die Unterschiede können als Text, als HTML Report oder JSON ausgegeben werden.

### 1.2.6. `duck`

`duck`, der Debian Url ChecKer, verarbeitet mehrere Felder in den Dateien `debian/control`, `debian/upstream`, `debian/copyright`, `debian/patches/*`, aber auch in Systemd Unit Dateien `systemd.unit`, es prüft dabei ob URLs, VCS Verlinkungen und E-Mail Adressen-Domainen, die gefunden worden sind, noch gültig sind.

### 1.2.7. `adequate`

`adequate` prüft Pakete die aktuell auf dem System installiert sind und meldet Fehler und Regelverletzungen.

Die folgenden Tests sind aktuell implementiert:

- defekte Symlinks

- fehlende Copyright Datei

- obsolete Konfigurationsdateien

- Python Module die nicht Byte-kompiliert sind

- Programme in `/bin` und `/sbin` die Bibliotheken in `/usr/lib` benötigen

- fehlende Bibliotheken, unbekannte Symbole, nicht passende Größen bei Symbolen

- Lizenzprobleme

- Kollisionen von Programmnamen

- fehlende Alternativen

- fehlende `binfmt` Interpreter und Detektoren

- fehlende `pkg-config` Abhängigkeiten

### 1.2.8. `i18nspector`

`i18nspector` ist ein Werkzeug welches Dateien für Übersetzungstemplates (POT), Nachrichtenkataloge (PO) und kompilierte Kataloge (MO) auf gängige Probleme prüft.

### 1.2.9. `cme`

`cme` ist ein Werkzeug aus dem Paket `libconfig-model-dpkg-perl` und ist ein Editor für die dpkg Quelldateien mit Überprüfung. Prüfen Sie die Paketbeschreibung um zu sehen was das Paket für Sie tun kann.

### 1.2.10. `licensecheck`

`licensecheck` versucht die Lizenz für jede an sie übergebene Datei zu ermitteln, indem nach Textpassagen im Kopf der Dateien gesucht wird die zu verschiedenen Lizenzen gehören.

### 1.2.11. `blhc`

`blhc` ist ein Werkzeug welches in den Logdateien nach dem Bau der Pakete nach fehlenden Hardening Flags sucht.

## 1.3. Helferskripte für `debian/rules`

Paketerstellungswerkzeuge erleichtern das Verfassen von `debian/rules`-Dateien. Lesen Sie Helferskripte, um weitere Informationen darüber zu erhalten, warum dies erwünscht und jenes unerwünscht sein könnte.

### 1.3.1. `debhelper`

`debhelper` ist eine Programmsammlung, die in `debian/rules` benutzt werden kann, um häufige Aufgaben zu automatisieren, die sich auf das Erstellen binärer Debian-Pakete beziehen. `debhelper` enthält Programme, um verschiedene Dateien in Ihre Pakete zu installieren, Dateien zu komprimieren, Dateirechte zu korrigieren und Ihr Paket in das Debian-Menüsystem zu integrieren.

Anders als bei anderen Lösungen ist `debhelper` in mehrere kleine, einfache Befehle aufgeteilt, die auf eine durchgängige Art zusammenarbeiten und dabei eine verglichen mit anderen Tools fein granuläre Kontrolle für `debian/rules` erlaubt.

Es gibt eine zu große Zahl kleiner Erweiterungspakete für `debhelper`, die zu verä nderlich sind, um sie hier zu dokumentieren. Sie können die Liste der meisten von Ihnen ansehen, indem Sie `apt-cache search ^dh-` aufrufen.

Wenn Sie den `debhelper` Kompatibilitätslevel für ihr Paket wählen, sollten Sie die höchste Kompatibilitätsstufe auswählen, die in der neuesten stabilen Version unterstützt wird. Verwenden Sie eine höhere Kompatibilitätsstufe nur, wenn Sie bestimmte Funktionen benötigen, die von dieser Kompatibilitätsstufe bereitgestellt werden und in früheren Stufen nicht verfügbar sind.

In der Vergangenheit wurde die Kompatibilitätsstufe in `debian/compat` definiert. Heutzutage ist es jedoch besser, dies nicht mehr zu verwenden, sondern eine versionierte Build-Abhängigkeit wie z.B. `debhelper-compat (= 12)` zu verwenden.

### 1.3.2. `dh-make`

Das Paket `dh-make` enthält ein Programm namens `dh_make`, das ein Gerüst von Dateien erstellt, die nötig sind, um Debian-Pakete aus einem Quellcode-Verzeichnisbaum zu erstellen. Wie der Name schon nahelegt, ist `dh_make` eine Neufassung von `debmake`, dessen Vorlagendateien `dh_*`-Programme von `debhelper` benutzen.

Während die von `dh_make` generierten "rules"-Dateien im Allgemeinen eine ausreichende Basis für ein funktionierendes Paket bilden, gibt es trotzdem noch weitere grundlegende Arbeiten zu erledigen: Die Hauptarbeit für die Feinabstimmung und das Paket funktional und Richtlinien konform zu machen, liegt immer noch beim Paketbetreuer.

### 1.3.3. `equivs`

`equivs` ist ein weiteres Paket für die Paketerstellung. Es wird oft für den lokalen Gebrauch vorgeschlagen, falls Sie einfach ein Paket erstellen müssen, um Abhängigkeiten zu erfüllen. Es wird manchmal auch benutzt, um Meta-Pakete zu erstellen. Dabei handelt es sich um Pakete, deren einziger Zweck darin besteht, Abhängigkeiten zu anderen Paketen zu generieren.

## 1.4. Werkzeuge zum Paketbau

Die folgenden Pakete helfen beim Prozess der Paketerstellung und führen im Allgemeinen `dpkg-buildpackage` aus, um unterstützende Aufgaben zu behandeln.

### 1.4.1. `git-buildpackage`

`git-buildpackage` stellt die Fähigkeit bereit, Debian-Quellpakete in ein Git-Repository aufzunehmen oder zu importieren, ein Debian-Paket aus dem Git-Repository zu bauen und bei der Integration von Änderungen der Originalautoren in das Repository zu helfen.

Diese Hilfswerkzeuge bieten eine Infrastruktur, um Debian-Betreuern den Gebrauch von Git zu erleichtern. Dies ermöglicht es, getrennte Git-Zweige von Paketen für die Distributionen `Stable`, `Unstable` und möglicherweise `Experimental` vor zuhalten, zusammen mit den anderen Vorteilen eines Versionsverwaltungssystems.

### 1.4.2. `debootstrap`

Das Paket und Skript `debootstrap` ermöglicht Ihnen das Urladen eines Debian-Basissystems in irgendeinen Teil Ihres Dateisystems. Mit Basissystem ist hier das Minimum an installierten Paketen gemeint, die nötig sind, um den Rest des Systems zu betreiben und zu installieren.

Ein solches System zu haben, kann in vielerlei Hinsicht nützlich sein. Sie können zum Beispiel mit `chroot` in das System gehen und Ihre Build-Abhängigkeiten testen. Oder Sie können testen, wie sich Ihr Paket verhält, wenn es in ein nacktes Basissystem installiert wird. Chroot-Builder benutzen dieses Paket; siehe weiter unten.

### 1.4.3. `pbuilder`

`pbuilder` erstellt ein Chroot-System und baut ein Paket innerhalb der Chroot-Umgebung. Es ist sehr nützlich, um die Build-Abhängigkeiten des Pakets zu überprüfen und sicherzustellen, dass keine unnötigen oder falschen Build-Abhängigkeiten in dem resultierenden Paket existieren.

Ein verwandtes Paket ist `cowbuilder`, das den Bauprozess mittels eines COW-Dateisystems auf jedem Standard-Linux-Dateisystem beschleunigt.

### 1.4.4. `sbuild`

`sbuild` ist ein weiterer automatisierter Builder. Er kann auch Chroot-Umgebungen benutzen. Er kann eigenständig benutzt werden oder als Teil einer verteilten Build-Umgebung über ein Netzwerk. Als letzteres ist er Teil des Systems, das Portierer benutzen, um Binärpakete für all die verfügbaren Architekturen zu erstellen. Weitere Informationen finden Sie in wanna-build und unter https://buildd.debian.org/ können Sie das System in Aktion sehen.

## 1.5. Programme zum Hochladen von Paketen

Die folgenden Pakete helfen, den Prozess, Pakete in das offizielle Archiv hochzuladen, zu automatisieren oder zu vereinfachen.

### 1.5.1. `dupload`

Das Paket `dupload` enthält ein gleichnamiges Skript mit dem automatisierte Dinge ausgeführt werden können wie ein Paket ins Debian Archiv hochzuladen, dieses Hochladen zu monitoren und optional eine E-Mail nach einen Paket Upload zu verschicken. Es unterstützt verschiedene Arten von Hooks um die eigene Funktionalität zu erweitern, es kann aber auch so konfiguriert werden, dass es neue Uploadziele oder Methoden unterstützt. Standardmäßig beinhaltet es schon verschiedene Hooks die Tests ausführen und beinhaltet ebenso eine Konfiguration die alle Uploadziele innerhalb Debians unterstützt.

### 1.5.2. `dput`

Mit dem Paket und Skript `dput` lässt sich das gleiche erreichen wie mit `dupload`, aber auf eine andere Art. Standardmäßig wird die Ausführung von `dinstall` im Leerlaufmodus (dry-run) nach dem Hochladen unterstützt.

### 1.5.3. `dcut`

Das Skript `dcut` (Teil des Pakets `dput`, dput) hilft beim Entfernen von Dateien aus dem FTP-Upload-Verzeichnis.

## 1.6. Automatisierung der Verwaltungsaufgaben

Die folgenden Werkzeuge helfen, verschiedene Verwaltungsaufgaben vom Hinzufügen von Änderungsprotokolleinträgen oder Signaturzeilen über das Nachschlagen von Fehlern in Emacs bis zum Gebrauch vom neuesten und offiziellen `config.sub` zu automatisieren.

### 1.6.1. `devscripts`

`devscripts` ist ein Paket mit Wrappern und Werkzeugen, die für die Pflege Ihrer Debian-Pakete sehr hilfreich sind. Beispielskripte sind `debchange` (oder sein Alias `dch`), das Ihre `debian/changelog`-Datei über die Befehlszeile bearbeitet, bis hin zu `debuild` was ein ein Wrapperskript um `dpkg-buildpackage` herum ist. Das Dienstprogramm `bts` ist auch sehr hilfreich, um z.B. den Status von Fehlerberichten von der Kommandozeile aus zu aktualisieren. `uscan` kann verwendet werden, um nach neuen Upstream-Versionen Ihrer Pakete zu suchen (Siehe hierzu https://wiki.debian.org/debian/watch für mehr Informationen). `suspicious-source` gibt eine Liste von Dateien aus, die keine allgemein bekannten Quelldateien sind.

Eine vollständige Liste der verfügbaren Skripte finden Sie auf der Handbuchseite devscripts 1.

### 1.6.2. `reportbug`

`reportbug` ist ein Werkzeug welches geschaffen wurde um das Melden von Fehlern in Debian und abgeleiteten Derivaten relativ problemlos zu gestalten. Zu den Eigenschaften gehören:

- Integration mit mutt und mh/nmh E-Mail Readern.

- Zugriff auf offene Fehlerberichte, um leichter feststellen zu können, ob bereits Probleme gemeldet wurden.

- Automatisches prüfen nach neuen Versionen von Paketen.

`reportbug` ist für die Verwendung auf Systemen mit einem installierten MTA (Mail Transport Agent) vorgesehen. Sie können die Konfigurationsdatei jedoch bearbeiten und Berichte über einen beliebigen verfügbaren Mailserver senden.

Dieses Paket enthält auch das Skript `querybts` um das Debian Bug Tracking System durchsuchen zu können.

### 1.6.3. `autotools-dev`

`autotools-dev` enthält optimale Vorgehensweisen für Maintainer, die Pakete betreuen, in denen `autoconf` und/oder `automake` zum Einsatz kommt. Außerdem enthält es anerkannte `config.sub` und `config.guess` Dateien, von denen bekannt ist, dass sie auf allen Debian-Portierungen funktionieren.

### 1.6.4. `dpkg-repack`

`dpkg-repack` erstellt eine Debian-Paketdatei aus einem Paket, das bereits installiert wurde. Falls irgendwelche Änderungen vorgenommen wurden, während das Paket entpackt war (es wurden z.B. Dateien in `/etc` verändert), wird das neue Paket die Änderungen erben.

Dieses Hilfswerkzeug kann das Kopieren von Paketen von einem Rechner zu einem anderen, das Neuerstellen von Paketen, die auf Ihrem System installiert wurden, aber nirgendwo mehr verfügbar sind, oder das Sichern des derzeitigen Paketstatus vor dem Upgrade vereinfachen.

### 1.6.5. `alien`

`alien` konvertiert Binärpakete zwischen verschiedenen Paketformaten, einschließlich Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris und Slackware.

### 1.6.6. `dpkg-dev-el`

`dpkg-dev-el` ist ein Emacs-Lisp-Paket, das Unterstützung beim Bearbeiten von Dateien im `debian`-Verzeichnis Ihres Pakets bietet. Es gibt dort zum Beispiel praktische Funktionen, um die aktuellen Fehler eines Programms aufzulisten und um den aktuellen Eintrag in einer `debian/changelog`-Datei abzuschließen.

### 1.6.7. `dpkg-depcheck`

`dpkg-depcheck` (aus dem Paket `devscripts`, devscripts) führt einen Befehl unter `strace` aus, um festzustellen, welche Pakete vom angegebenen Befehl benutzt werden.

Für Debian-Pakete ist dies nützlich, wenn Sie eine `Build-Depends`-Zeile für Ihr neues Paket erstellen müssen: Wenn Sie den Build-Prozess durch `dpkg-depcheck` auszuführen, dann wird eine gute erste Übersicht über die Build-Abhängigkeiten ausgegeben werden. Zum Beispiel so aufgerufen:

    dpkg-depcheck -b debian/rules build

`dpkg-depcheck` kann außerdem benutzt werden, um Laufzeitabhängigkeiten zu prüfen, insbesondere, wenn Ihr Paket exec 2 benutzt, um andere Programme auszuführen.

Weitere Informationen finden Sie unter dpkg-depcheck 1.

### 1.6.8. `debputy`

Das Programm `debputy` ist seit 2024 neu. Während der Hauptzweck des Programms darin besteht ein neues Build-Paradigma für Debian-Pakete bereitzustellen, enthält `debputy` einige Befehle, die mit jedem bestehenden Debian-Paket verwendet werden können, um die Korrektheit der meisten Dateien in `debian/*` zu prüfen und in vielen Fällen auch automatisch herstellen zu können.

Um die Korrektheit von Dateien in debian/* zu überprüfen, kann dieser Befehl verwendet werden:

    debputy lint --spellcheck

Die Dateien debian/control und debian/tests/control können so formatiert werden:

    debputy reformat --style black

Die Verwendung des Befehls `reformat` ersetzt die Verwendung von `wrap-and-sort -ast`.

Das Werkzeug `debputy` enthält ebenfalls einen Sprach-Server, der, wenn in einen Editor integriert, Echtzeit-Rückmeldung über die Korrektheit von Dateien in `debian/*` während der Bearbeitung gibt.

Um weitere Informationen zu erhalten, lesen Sie debputy 1.

## 1.7. Portierungswerkzeuge

Die folgenden Werkzeuge sind hilfreich für Portierer und zur Kompilierung für andere Plattformen.

### 1.7.1. `dpkg-cross`

`dpkg-cross` ist ein Werkzeug, um Bibliotheken und Header zum Kompilieren auf anderen Plattformen auf eine Art zu installieren, die `dpkg` ähnlich ist. Weiterhin verbessert es die Funktionalität von `dpkg-buildpackage` und `dpkg-shlibdeps`, um das Kompilieren von Paketen für andere Plattformen (cross-compiling) zu unterstützen.

## 1.8. Dokumentation und Information

Die folgenden Pakete stellen Informationen für Betreuer zur Verfügung oder helfen bei der Erstellung von Dokumentation.

### 1.8.1. `debian-policy`

Das Paket `debian-policy` enthält das Debian Richtlinienhandbuch und zugehörige Dokumente, diese sind:

- Debian Richtlinienhandbuch

- Filesystem Hierarchy Standard (FHS)

- Regeln für Menüs in Debian

- Spezifische Regeln für Perl in Debian

- Spezifikationen des Debian Konfigurationsmanagment

- Spezifikation für eine maschinell lesbare Datei debian/copyright

- Autopkgtest - Automatisches Testen von Paketen im installierten Zustand

- Maßgebliche Liste der Namen von virtueller Paketen

- Checkliste mit Regeln für das Aktualisieren Ihrer Paketen

Das Debian-Richtlinienhandbuch enthält die Richtlinien zu Paketen und Einzelheiten zum Mechanismus des Paketierens. Es deckt alles ab, von den erforderlichen "gcc"-Optionen bis hin zur Funktionsweise der Betreuerskripte ("postinst" usw.), Sektionen für Paketen und Prioritäten usw.

Auch sehr nützlich ist die Datei `/usr/share/doc/debian-policy/upgrading-checklist.txt.gz`, diese listet die Änderungen zwischen den verschieden Versionen der Debian Richtlinie auf.

### 1.8.2. `doc-debian`

`doc-debian` enthält ein große Menge an Debian spezifischer Dokumentation:

- Debian Linux Manifesto

- Verfassung des Debian Projektes

- Debian Gesellschaftervertrag

- Debian Free Software Guidelines

- Dokumentation des Debian Bug Tracking System

- Einführung in die Debian Mailinglisten

### 1.8.3. `developers-reference`

Das Paket `developers-reference` enthält das Dokument, welches Sie gerade lesen, die Debian Developer's Reference ist eine Reihe von Richtlinien und Best Practices, die von und für die Gemeinschaft der Debian-Entwickler erstellt wurden.

### 1.8.4. `maint-guide`

Das Paket `maint-guide` enthält den "Debian-Leitfaden für Neue Paketbetreuer".

Dieses Dokument versucht den normalen Debian-Benutzern und potenziellen Entwicklern den Aufbau eines Debian-Pakets zu beschreiben. Es verwendet bewusst eine nicht-technische Sprache und hat ein Reihe an Arbeitsbeispielen.

### 1.8.5. `debmake-doc`

Das Paket `debmake-doc` enthält den "Leitfaden für Debian-Betreuer".

Dieses Dokument ist neuer als der "Debian-Leitfaden für Neue Paketbetreuer" und zielt darauf ab, es zu ersetzen. Der "Leitfaden für Debian-Betreuer" richtet sich an Leute, die Paketierung für Debian erlernen wollen, und deckt eine breite Spanne von Themen und Werkzeugen ab, zusammen mit vielen Beispielen zu verschiedenen Paketierungsproblemen.

### 1.8.6. `packaging-tutorial`

Dieses Tutorial ist eine Einführung in die Paketierung von Debian Paketen. Hier erfahren angehende Entwickler, wie sie vorhandene Pakete ändern, eigene Pakete erstellen können und mit der Debian-Gemeinschaft interagieren können.

Zusätzlich zum Haupt-Tutorial enthält es drei praktische Beispiele wie zum ändern des `grep` Paketes, zum Paketieren des `gnujump` Spiels und einer Java Bibliothek.

### 1.8.7. `how-can-i-help`

`how-can-i-help` zeigt Möglichkeiten für Beiträge zu Debian auf. `how-can-i-help` hängt sich in `APT`, um Möglichkeiten für Beiträge zu Debian (verwaiste Pakete, Fehler mit dem Tag 'newcomer') für lokal installierte Pakete nach jedem `APT` Aufruf aufzulisten. Es kann auch direkt aufgerufen werden und listet dann alle Beitragsmöglichkeiten auf (nicht nur die neuen).

### 1.8.8. `docbook-xml`

`docbook-xml` stellt die DocBook-XML-Dokumenttypdefinitionen (DTD) bereit, die häufig für Debian-Dokumentation benutzt werden (genauso wie die ältere Debiandoc-SGML-DTD).

Das Paket `docbook-xsl` stellt XSL-Dateien zum Erstellen und Gestalten der Datenquelle in verschiedenen Ausgabeformaten bereit. Sie benötigen einen XSLT-Prozessor wie `xsltproc`, um die XSL-Stylesheets zu verwenden. Dokumentation für die Stylesheets finden Sie in den verschiedenen `docbook-xsl-doc-*`-Paketen.

Um ein PDF aus FO zu erstellen, benötigen Sie einen FO-Prozessor wie `xmlroff` oder `fop`. Ein weiteres Werkzeug, um PDF aus DocBook-XML zu generieren, ist `dblatex`.

### 1.8.9. `debiandoc-sgml`

`debiandoc-sgml` stellt die DebianDoc-SGML-Dokumenttypdefinitionen (DTD) bereit, die normalerweise für Debian-Dokumentation benutzt worden ist, aber nun als veraltet gilt (stattdessen sollte `docbook-xml` oder python3-sphinx benutzt werden).

### 1.8.10. `debian-keyring`

Dieses Paket enthält die öffentlichen OpenPGP-Schlüssel der Debian-Entwickler und Paketbetreuer. Siehe Verwalten Ihres öffentlichen Schlüssels und die Paketdokumentation für weitere Informationen.

### 1.8.11. `debian-el`

`debian-el` stellt einen Emacs-Modus bereit, um Debian-Binärpakete anzusehen. Dies ermöglicht Ihnen, ein Paket zu untersuchen, ohne es entpacken zu müssen.