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.
Some people prefer to use high-level package maintenance tools and some do not. Debian is officially agnostic on this issue; any tool that gets the job done is fine. Therefore, this section is not meant to stipulate to anyone which tools they should use or how they should go about their duties of maintainership. Nor is it meant to endorse any particular tool to the exclusion of a competing tool.
Die meisten Beschreibungen dieser Pakete entstammen selbst den tatsächlichen
Paketbeschreibungen. Weitere Informationen sind in der Paketbeschreibung
selbst zu finden. Sie können außerdem mit dem Befehl apt-cache show
Paketname
zusätzliche Informationen
abrufen.
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 solche sind sie
für jeden Debian-Betreuer erforderlich.
debconf
stellt eine einheitliche
Schnittstelle zur Verfügung, um Pakete interaktiv zu konfigurieren. 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.
Many feel that this system should be used for all packages that require
interactive configuration; see Abschnitt 6.5, „Konfigurationsverwaltung mit debconf
“.
debconf
is not currently required by
Debian Policy, but that may change in the future.
According to the Free On-line Dictionary of Computing (FOLDOC), `lint' is: "A Unix C language processor which carries out more thorough checks on the code than is usual with C compilers." Package lint tools help package maintainers by automatically finding common problems and policy violations in their packages.
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 für häufige Fehler.
Sie sollten sich regelmäßig das neueste 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 deren Grundlage in den Debian-Richtlinien
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 für
Ihre Pakete meldet, unter https://lintian.debian.org/
abfragen. 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 Unterschiede, die
ausgegeben werden, in Ordnung sein, aber es kann Ihnen helfen, verschiedene
Unfälle zu vermeiden.
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 von »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, „Helferskripte“, um weitere Informationen darüber zu erhalten,
warum dies erwünscht und jenes unerwünscht sein könnte.
debhelper
is a collection of
programs that can be used in debian/rules
to automate
common tasks related to building binary Debian packages. debhelper
includes programs to install various
files into your package, compress files, fix file permissions, and integrate
your package with the Debian menu system.
Unlike some approaches, debhelper
is
broken into several small, simple commands, which act in a consistent
manner. As such, it allows more fine-grained control than some of the other
debian/rules tools.
Es gibt eine zu große Zahl kleiner Erweiterungspakete für debhelper
, die zu kurzlebig sind, um sie hier zu
dokumentieren. Sie können die Liste der meisten von Ihnen ansehen, indem Sie
apt-cache search ^dh-
aufrufen.
The dh-make
package contains
dh_make, a program that creates a skeleton of files
necessary to build a Debian package out of a source tree. As the name
suggests, dh_make is a rewrite of debmake
, and its template files use
dh_* programs from debhelper
.
Während die von dh_make generierten »rules«-Dateien im Allgemeinen eine ausreichende Basis für ein funktionierendes Paket bilden, gibt es trotzdem noch grundlegende Arbeiten zu erledigen: 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, Abhängigkeiten zu anderen Paketen zu generieren.
The following packages help with the package building process, general driving of dpkg-buildpackage, as well as handling supporting tasks.
git-buildpackage
stellt die
Fähigkeit bereit, Debian-Quellpakete in ein Git-Depot einzuspeisen oder zu
importieren, ein Debian-Paket aus dem Git-Depot zu bauen und bei der
Integration von Änderungen der Originalautoren in das Depot 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
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 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 unten.
pbuilder
constructs a chrooted
system, and builds a package inside the chroot. It is very useful to check
that a package's build dependencies are correct, and to be sure that
unnecessary and wrong build dependencies will not exist in the resulting
package.
A related package is cowbuilder
,
which speeds up the build process using a COW filesystem on any standard
Linux filesystem.
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 Abschnitt 5.10.3.3, „wanna-build
“
und unter https://buildd.debian.org/ können Sie das System 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.
The dput
package and script do much
the same thing as dupload
, but in a
different way. It has some features over dupload
, such as the ability to check the GnuPG
signature and checksums before uploading, and the possibility of running
dinstall in dry-run mode after the upload.
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 über das
Nachschlagen von Fehlern in Emacs bis zum Gebrauch vom neuesten und
offiziellen config.sub
zu automatisieren.
devscripts
is a package containing
wrappers and tools that are very helpful for maintaining your Debian
packages. Example scripts include debchange and
dch, which manipulate your
debian/changelog
file from the command-line, and
debuild, which is a wrapper around
dpkg-buildpackage. The bts utility is
also very helpful to update the state of bug reports on the command line.
uscan can be used to watch for new upstream versions of
your packages. debrsign can be used to remotely sign a
package prior to upload, which is nice when the machine you build the
package on is different from where your GPG keys are.
Eine vollständige Liste der verfügbaren Skripte finden Sie auf der Handbuchseite devscripts(1).
autotools-dev
contains best
practices for people who maintain packages that use
autoconf and/or automake. Also
contains canonical config.sub
and
config.guess
files, which are known to work on all
Debian ports.
dpkg-repack creates a Debian package file out of a
package that has already been installed. If any changes have been made to
the package while it was unpacked (e.g., files in /etc
were modified), the new package will inherit the changes.
This utility can make it easy to copy packages from one computer to another, or to recreate packages that are installed on your system but no longer available elsewhere, or to save the current state of a package before you upgrade it.
alien konvertiert Binärpakete zwischen verschiedenen Paketformaten, einschließlich Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris und Slackware.
dpkg-dev-el
is an Emacs lisp package
that provides assistance when editing some of the files in the
debian
directory of your package. For instance, there
are handy functions for listing a package's current bugs, and for finalizing
the latest entry in a debian/changelog
file.
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 Übersicht über die 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.
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.
Die folgenden Pakete stellen Informationen für Betreuer zur Verfügung oder helfen bei der Erstellung von Dokumentation.
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). Dieses Handbuch wurde zum Beispiel in Docbook-XML
verfasst.
Das Paket docbook-xsl
stellt
XSL-Dateien zum Erstellen und Gestalten der Quelle 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 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
.
debiandoc-sgml
stellt die
DebianDoc-SGML-Dokumenttypdefinitionen (DTD) bereit, die normalerweise für
Debian-Dokumentation benutzt, aber nun missbilligt werden (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 ist im Paket debiandoc-sgml-doc
zu finden.
Enthält die öffentlichen GPG-Schlüssel der Debian-Entwickler und Paketbetreuer. Siehe Abschnitt 3.2.2, „Verwalten Ihres öffentlichen Schlüssels“ und die Paketdokumentation für weitere Informationen.