Inhaltsverzeichnis
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 einzuräumen. Wie schon Larry Wall sagte, gibt es mehr als einen Weg, um etwas zu erledigen.
Einige Leute bevorzugen die Benutzung von hochrangigen Paketverwaltungswerkzeugen, andere nicht. Debian ist bei diesem Thema agnostisch; jedes Werkzeug, das seine Aufgabe erfüllt, ist gut. Daher ist dieser Abschnitt nicht dazu gedacht, jemandem vorzuschreiben, welche Werkzeuge er benutzen oder wie er mit seinen Pflichen als Betreuer umgehen soll. Er ist auch nicht dazu gedacht, ein besonderes Werkzeug zu befürworten, um ein konkurrierendes auszuschließen.
Die meisten Beschreibungen dieser Pakete entstammen selbst den tatsächlichen
Paketbeschreibungen. Weitere Informationen können in der Paketbeschreibung
selbst gefunden werden. Sie können außerdem mit dem Befehl
apt-cache show Paketname
zusätzliche Informationen lesen.
Die folgenden Werkzeuge werden größtenteils von jedem Betreuer benötigt.
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 untergeordneten Funktionalitäten, die zum
Erstellen und Manipulieren von Paketen benötigt werden; als solches sind sie
für jeden Debian-Betreuer erforderlich.
debconf
stellt eine einheitliche
Schnittstelle zur Verfügung, um Pakete interaktiv zu konfigurieren, Es ist
unabhängig von der Schnittstelle des Anwenders, erlaubt Endanwendern Pakete
mit einer reinen Textschnittstelle, einer HTML-Schnittstelle oder einer
Dialogschnittstelle zu konfigurieren. Neue Schnittstellen können als Module
hinzugefügt werden.
Sie können Dokumentation für dieses Paket im Paket debconf-doc
finden.
Viele sind der Ansicht, dieses System sollte für alle Pakete verwandt
werden, die eine interaktive Konfiguration erfordern; siehe Abschnitt 6.5, „Konfigurationsverwaltung mit debconf
“. Derzeit wird debconf
noch nicht von den Debian Richtlinien
benötigt, aber das kann sich in der Zukunft ändern.
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, können
Sie Pakete als normaler Anwender erstellen: dpkg-buildpackage
-rfakeroot
.
Gemäß dem Free On-line Dictionary of Computing (FOLDOC) ist »lint« ein Unix-Prozessor für die Sprache C, der gründlichere Prüfungen des Codes mitbringt als übliche C-Kompiler. Lint-Werkzeuge für Pakete helfen Paketbetreuern automatisch häufige Probleme und Richtlinienverletzungen in ihren Paketen zu finden.
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,
als auch einige Prüfungen für häufige Fehler.
Sie sollten regelmäßig das neuste lintian
aus unstable
besorgen
und all Ihre Pakete überprüfen. Beachten Sie, dass die Option
-i
detaillierte Erklärungen liefert, was jeder Fehler
oder jede Warnung bedeutet, was die Grundlage in der Richtlinie ist und wie
das Problem üblicherweise behoben werden kann.
Es sei für weitere Informationen darüber, wie und wann Lintian benutzt wird, auf Abschnitt 5.3, „Das Paket testen“ verwiesen.
Sie können außerdem eine Zusammenfassung aller Probleme, die Lintian in all
Ihren Paketen meldet unter http://lintian.debian.org/
ansehen. Diese Berichte enthalten die letzte Ausgabe von
lintian für die ganze Entwicklungsdistribution
(unstable
).
debdiff (aus dem Paket devscripts
, Abschnitt A.6.1, „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 Änderungen, die es
meldet, in Ordnung sein, aber es kann Ihnen helfen verschiedene Unfälle zu
verhüten.
Sie können es für ein Paar binärer Pakete ausführen:
debdiff package_1-1_arch.deb package_2-1_arch.deb
oder sogar für ein Paar aus »changes«-Dateien:
debdiff package_1-1_arch.changes package_2-1_arch.changes
Um weitere Informationen zu erhalten, lesen Sie debdiff(1).
Paketerstellungswerkzeuge erleichtern das Verfassen von
debian/rules
-Dateien. Lesen Sie Abschnitt 6.1.1, „Helfer-Skripte“, um weitere Informationen darüber zu erhalten,
warum dies erwünscht und jenes unerwünscht sein könnte.
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 einigen Herangehensweisen ist debhelper
in mehrere kleine einfache Befehle
unterteilt, die auf eine durchgängige Art zusammenarbeiten. Als solches
erlaubt es eine detailliertere Steuerung, als andere Werkzeuge für
»debian/rules«.
Es gibt eine zu große Zahl kleiner Erweiterungspakete für debhelper
, die zu kurzlebig sind, um sie zu
dokumentieren. Sie können die Liste der meisten von Ihnen ansehen, indem Sie
apt-cache search ^dh-
aufrufen.
Das Paket dh-make
enthält ein
Programm gleichen Namens, das ein Gerüst von Dateien erstellt, die nötig
sind, um Debian-Pakete aus einem Quellcodeverzeichnisbaum zu erstellen. Wie
der Name schon nahelegt, ist dh_make eine Neufassung von
debmake
dessen Schablonendateien
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 immer noch die grundlegenden Arbeiten: Die Last für die Feinabstimmung und das Paket funktional und richtlinienkonform zu machen, liegt immer noch beim Betreuer.
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, von anderen Paketen abzuhängen.
Die folgenden Pakete helfen beim Prozess der Paketerstellung und führen im Allgemeinen dpkg-buildpackage aus, um unterstützende Aufgaben zu behandeln.
cvs-buildpackage
stellt die
Fähigkeit bereit, wichtige Debian-Quellpakete in ein CVS-Depot einzuspeisen,
ein Debian-Paket aus dem CVS-Depot zu erstellen und bei der Integration von
Änderungen der Originalautoren in das CVS-Depot zu helfen.
Diese Hilfswerkzeuge bieten eine Infrastruktur, um Debian-Betreuern den
Gebrauch von CVS zu erleichtern. Dies ermöglicht getrennte Zweige von
Paketen für die Distributionen stable
,
unstable
und möglicherweise
experimental
vorzuhalten, zusammen mit den anderen
Vorteilen eines Versionsverwaltungssystems.
Das Paket und Skript debootstrap
ermöglicht Ihnen das Urladen eines Debian-Basissystems in irgendeinen Teil
Ihres Dateisystems. Mit Basissystem ist ein Minimum an installierten Paketen
gemeint, die nötig sind, um des 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 wenn Sie wollen, 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 Folgendes.
pbuilder
konstruiert ein
Chroot-System und erstellt ein Paket innerhalb der Chroot-Umgebung. Es ist
sehr nützlich, um zu prüfen, ob die Build-Abhängigkeiten des Pakets korrekt
sind und um sicher zu sein, dass keine unnötigen oder falschen
Build-Abhängigkeiten in dem resultierenden Paket existieren.
Ein verwandtes Paket ist pbuilder-uml
, das sogar noch weiter geht, indem
es den Build innerhalb einer User-Mode-Linux-Umgebung durchführt.
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 unter Abschnitt 5.10.3.3, „wanna-build
“ und das System können Sie unter http://buildd.debian.org/ in Aktion sehen.
Die folgenden Pakete helfen den Prozess, Pakete in das offizielle Archiv hochzuladen, zu automatisieren oder zu vereinfachen.
dupload
ist ein Paket und ein
Skript, um Debian-Pakete automatisch in das Debian-Archiv hochzuladen, den
Upload zu protokollieren und Mails über den Upload eines Pakets zu
versenden. Sie können es für neue Upload-Orte und -Methoden konfigurieren.
Das Paket und Skript dput
tut das
gleiche wie dupload
, aber auf eine
andere Art. Es hat einige Funktionalitäten mehr als dupload
, wie die Fähigkeit GnuPG-Signaturen und
Prüfsummen vor dem Upload zu überprüfen und die Möglichkeit nach dem Upload
dinstall im Leerlaufmodus auszuführen.
Das Skript dcut (Teil des Pakets dput
, Abschnitt A.5.2, „dput
“) hilft beim
Entfernen von Dateien aus dem FTP-Upload-Verzeichnis.
Die folgenden Werkzeuge helfen verschiedene Verwaltungsaufgaben vom
Hinzufügen von Änderungsprotokolleinträgen oder Signaturzeilen bis zum
Nachschlagen von Fehlern in Emacs zum Gebrauch vom neusten und offiziellen
config.sub
zu automatisieren.
devscripts
ist ein Paket, das
Wrapper und Werkzeuge enthält, die die sehr hilfreich für die Verwaltung von
Debian-Paketen sind. Beispielskripte beinhalten debchange
und dch, die Ihre
debian/changelog
-Datei von der Befehlszeile
manipulieren und debuild, das ein Wrapper um
dpkg-buildpackage ist. Außerdem ist das Hilfswerkzeug
bts sehr hilfreich, um den Status von Fehlerberichten auf
der Befehlszeile zu aktualisieren. uscan kann benutzt
werden, um neue Versionen Ihres Pakets von den Originalautoren zu
beobachten. debrsign kann benutzt werden, um ein Paket
vor dem Upload aus der Ferne zu signieren, was angenehm ist, wenn der
Rechner, auf dem Sie das Paket erstellen, sich von dem unterscheidet, auf
dem die GPG-Schlüssel liegen.
Eine vollständige Liste der verfügbaren Skripte finden Sie auf der Handbuchseite devscripts(1).
autotools-dev
enthält optimale
Vorgehensweisen für Leute, die Pakete betreuen, die
autoconf und/oder automake
benutzen. Außerdem anthält es vorschriftsmäßige
config.sub
- und
config.guess
-Dateien, von denen bekannt ist, dass sie
auf allen Debian-Portierungen funktionieren.
dpkg-repack erstellt eine Debian-Paketdatei aus einem
Paket, das bereits installiert wurde. Falls irgendwelche Änderungen
vorgenommen wurden, während das Pakert 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.
alien wandelt Binärpakete zwischen verschiedenen Paketformaten, einschließlich Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris und Slackware um.
debsums überprüft die MD5-Prüfsummen von installierten Paketen. Beachten Sie, dass nicht alle Pakete MD5-Prüfsummen haben, da diese nicht von den Richtlinien vorgeschrieben werden.
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 Programm
aufzulisten und um den letzten Eintrag in einer
debian/changelog
-Datei zu beenden.
dpkg-depcheck (aus dem Paket devscripts
, Abschnitt A.6.1, „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 verfassen müssen:
den Build-Prozess durch dpkg-depcheck auszuführen wird
Sie mit einer guten ersten Annäherung von Build-Abhängigkeiten
versorgen. Zum Beispiel:
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).
Die folgenden Werkzeuge sind hilfreich für Portierer und Kompilierung für andere Plattformen.
quinn-diff
wird benutzt, um die
Unterschiede zwischen zwei Architekturen zu finden. Es könnte zum Beispiel
aufzeigen, welche Pakete für die Architektur Y
basierend auf Architektur X
portiert werden
müssen.
dpkg-cross
ist ein Werkzeug, um
Bibliotheken und Header zum Kompilieren auf anderen Plattformen auf eine Art
zu installieren, die dpkg
ähnlich
ist. Weiterhin wird die Funktionalität von
dpkg-buildpackage und dpkg-shlibdeps
durch die Unterstützung vom Kompilieren auf anderen Plattformen verbessert.
Die folgenden Pakete stellen Informationen für Betreuer zur Verfügung oder helfen bei der Erstellung von Dokumentation.
docbook-xml
stellt die
DocBook-XML-DTDen bereit, die häufig für Debian-Dokumentation benutzt werden
(genauso wie die ältere Debiandoc-SGML-DTD). Dieses Handbuch wurde zum
Beispiel in Docbook-XML verfasst.
Das Paket docbook-xsl
stellt die
XSL-Dateien zum Erstellen und Gestalten der Quelle in verschiedenen
Ausgabeformaten bereit. Sie benötigen ein XSLT-Bearbeitungsprogramm wie
xsltproc
, um die XSL-Stylesheets zu
verwenden. Dokumentation für die Stylesheets kann in den verschiedenen
docbook-xsl-doc-*
-Paketen gefunden
werden.
Um PDF aus FO zu erstellen, benötigen Sie ein FO-Bearbeitungsprogramm wie
xmlroff
oder fop
. Ein weiteres Werkzeug, um PDF aus
DocBook-XML zu generieren ist dblatex
.
debiandoc-sgml
stellt die
DebianDoc-SGML-DTD bereit, die normalerweise für Debian-Dokumentation
benutzt aber nun missbilligt wird (stattdessen sollte docbook-xml
benutzt werden). Es stellt außerdem
Skripte zum Erstellen und Gestalten der Quelle in verschiedenen
Ausgabeformaten bereit.
Dokumentation für die DTD kann im Paket debiandoc-sgml-doc
gefunden werden.
enthält die öffentlichen GPG- und PGP-Schlüssel der Debian-Entwickler. Siehe Abschnitt 3.2.2, „Verwalten Ihres öffentlichen Schlüssels“ und die Paketdokumentation für weitere Informationen.
enthält die öffentlichen GPG-Schlüssel der Debian-Betreuer. Siehe http://wiki.debian.org/DebianMaintainer für weitere Informationen.