[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ weiter ]
Dieses Dokument versucht, einem typischen Debian-Benutzer und zukünftigen Entwickler in einer verständlichen Sprache die Technik der Paketerstellung für Debian beizubringen, begleitet von funktionierenden Beispielen. Ein altes lateinisches Sprichwort lautet: Longum iter est per preaecepta, breve et efficax per exempla! (Es ist ein langer Weg mit Regeln, aber ein kurzer und effizienter mit Beispielen!)
Dieses Dokument wurde für die Debian-Release Squeeze aktualisiert. [1]
Eines der Dinge, die Debian zu einer hervorragenden Distribution machen, ist das Paket-System. Obwohl massenhaft Software im Debian-Format vorhanden ist, muss man manchmal auch Software installieren, die nicht in diesem Format vorliegt. Sie fragen sich vermutlich, wie man eigene Pakete erstellt und vielleicht meinen Sie, es sei eine sehr komplizierte Aufgabe. Nun, wenn Sie ein absoluter Linux-Neuling sind, dann ist es wirklich schwierig, aber als Anfänger würden Sie dieses Dokument jetzt nicht lesen. :-) Sie sollten schon ein wenig Kenntnisse über die Unix-Programmierung mitbringen, aber Sie brauchen ganz sicher kein Guru zu sein.
Eines ist wohl sicher: um Debian-Pakete richtig zu bauen und zu warten, brauchen Sie viel Zeit. Schätzen Sie das nicht falsch ein; damit unser System funktioniert, muss der Betreuer sowohl technisch kompetent sein als auch fleißig und sorgfältig arbeiten.
Dieses Dokument wird jeden kleinen (möglicherweise auch irrelevanten) Schritt erklären, um Ihnen bei der Erstellung des ersten Pakets zu helfen. Außerdem bekommen Sie etwas Erfahrung im Erstellen neuer Veröffentlichungen des Pakets undvielleicht später anderer Pakete.
Wenn Sie Hilfe beim Erstellen des Pakets brauchen, lesen Sie bitte Wo man Hilfe bekommen kann, Abschnitt 1.4.
Neuere Versionen dieses Dokuments sollten immer über http://www.debian.org/doc/maint-guide/
und in dem Paket maint-guide-de
zu finden sein.
Bevor Sie loslegen können, müssen Sie sicherstellen, dass einige zusätzliche Pakete richtig installiert sind, die für die Entwicklung benötigt werden. Beachten Sie, dass die Liste keine Pakete enthält, die als essential oder required markiert sind - wir gehen davon aus, dass Sie diese schon installiert haben.
Die folgenden Pakete sind in der Standardinstallation von Debian enthalten, also werden Sie sie vermutlich schon haben (und zusätzliche Pakete, von denen diese abhängen). Sie sollten es dennoch mit »aptitude show Paket« überprüfen.
Das wichtigste Paket, dass auf Ihrem Entwicklungssystem installiert werden
sollte, ist das Paket build-essential
. Wenn Sie es installieren,
wird es andere Paket hinterherziehen (»pull in«), die für eine
grundlegende Build-Umgebung notwendig sind.
Für manche Arten von Paketen ist das alles, was Sie benötigen. Es gibt allerdings noch eine weitere Sammlung von Paketen, die - obwohl sie nicht essenziell für jede Paketerstellung sind - sinnvoll installiert werden können oder sogar von Ihrem Paket benötigt werden:
file
- Dieses nützliche Programm kann den Typ einer Datei
feststellen (siehe file(1)
).
patch
- Ein sehr nützliches Programm, das eine Datei mit einer
Auflistung der Unterschiede im Dateiinhalt (erstellt mit dem Programm
diff
) auf die ursprüngliche Datei anwendet und daraus die neue
Version erzeugt (siehe patch(1)
).
perl
- Perl ist eine der am meisten gebrauchten interpretierten
Skriptsprachen auf heutigen Unix-ähnlichen Systemen, oft bezeichnet als
»Unix' Schweizer Offizierskettensäge« (siehe perl(1)
).
python
- Python ist eine weitere der am meisten gebrauchten
interpretierten Skriptsprachen auf Debiansystemen, die bemerkenwerte Stärke
mit einer sehr klaren Syntax kombiniert (siehe python(1)
).
autoconf
, automake
und autotools-dev
-
Viele neuere Programme benutzen configure-Skripte und
Makefile
-Dateien, die mit Hilfe dieser Programme vorproduziert
wurden (siehe »info autoconf«, »info automake«).
Das Paket autotools-dev
enthält aktuelle Versionen von bestimmten
auto-Dateien sowie Informationen über die beste Art und Weise, diese Dateien
zu verwenden.
dh-make
und debhelper
- dh-make
wird
benötigt, um eine Vorlage des Beispielpakets zu erstellen. Es verwendeteinige
der debhelper
-Werkzeuge für die Paketerstellung. Sie sind nicht
zwingend erforderlich, um Pakete zu erstellen, aber für neue Betreuer
sehr empfohlen. Sie vereinfachen den Einstieg in den ganzen Prozess
sehr, ebenso die spätere Kontrolle (siehe dh_make(1)
,
debhelper(1)
, /usr/share/doc/debhelper/README
). [2]
devscripts
- Dieses Paket enthält einige nette und nützliche
Skripte, die für die Betreuer hilfreich sein können, aber nicht zum Bauen der
Pakete benötigt werden. Die von diesem Paket empfohlenen und vorgeschlagenen
Pakete sind ebenfalls einen Blick wert (siehe
/usr/share/doc/devscripts/README.gz
).
fakeroot
- Dieses Hilfsprogramm ermöglicht Ihnen, die Identität
von »root« vorzutäuschen, was für einige Teile des Build-Prozesses
benötigt wird (siehe fakeroot(1)
).
gnupg
- Ein Werkzeug, mit dem Sie Pakete digital
signieren können. Dies ist besonders wichtig, wenn Sie das Paket an
andere Leute verteilen wollen und das werden Sie sicher, wenn Ihre Arbeit in
die Debian-Distribution aufgenommen wird (siehe gpg(1)
).
gfortran
- Der GNU-Fortran-95-Compiler wird benötigt, wenn Ihr
Programm in Fortran geschrieben ist (siehe gfortran(1)
).
gpc
- Der GNU-Pascal-Compiler wird benötigt, wenn Ihr Programm in
Pascal geschrieben ist. Erwähnenswert ist an dieser Stelle der »Free Pascal
Compiler« fp-compiler
, der sich dafür ebenfalls gut eignet
(siehe gpc(1)
, ppc386(1)
).
xutils-dev
- Einige Programme, üblicherweise die für X11
erstellten, benutzen diese Programme zum Erzeugen von
Makefile
-Dateien aus einem Satz von Makro-Funktionen (siehe
imake(1)
, xmkmf(1)
).
lintian
- Das ist Debians Paket-Prüfer, der Sie über die
häufigen Fehler nach der Paketerstellung informiert und die gefundenen Fehler
erklärt (siehe lintian(1)
,
/usr/share/doc/lintian/lintian.html/index.html
).
pbuilder
- Dieses Paket enthält Programme, um eine
chroot
-Umgebung aufzubauen und zu betreuen. Beim Bauen eines
Debian-Pakets in dieser chroot
-Umgebung wird geprüft, ob die
Build-Abhängigkeiten stimmen, wodurch FTBFS-Fehler (»Fails To Build From
Source«, kann nicht aus der Quelle gebaut werden) verhindert werden (siehe
pbuilder(8)
und pdebuild(1)
).
patchutils
- Dieses Paket enthält einige Hilfsprogramme, um mit
Patches zu arbeiten, beispielsweise die Befehle lsdiff
,
interdiff
und filterdiff
.
quilt
- Dieses Paket hilft Ihnen dabei, eine Serie von Patches zu
verwalten, indem es die Änderungen verfolgt, die jeder Patch vornimmt. Sie
sind logisch als Stack organisiert und Sie können sie leicht anwenden (=
»push«), rückgängig machen (= »pop«) sowie aktualisieren, während Sie
sich innerhalb des Stacks bewegen (siehe quilt(1)
,
/usr/share/doc/quilt/README.Debian
).
git
- Dieses Paket stellt das populäre Versionskontrollsystem zur
Verfügung, das dafür entworfen wurde, bei sehr großen Projekten schnell und
effizient zu arbeiten. Es wird in vielen hoch angesehenen
Open-Source-Projekten eingesetzt, beispielsweise beim Linux-Kernel (siehe
git(1)
, /usr/share/doc/git-doc/index.html
).
Das Folgende sind sehr wichtige Dokumente, die Sie neben diesem Dokument auch lesen sollten:
debian-policy
- Die Debian-Richtlinien
beinhalten Beschreibungen der Struktur und des Inhalts des Debian-Archivs,
mehrere Besonderheiten des Betriebssystemdesigns, den »Filesystem Hierarchy
Standard« (der beschreibt, wo jede Datei und jedes Verzeichnis sein sollte)
usw. Das Wichtigste für Sie ist, dass sie die Anforderungen beschreiben, die
ein Paket erfüllen muss, um in die Distribution aufgenommen zu werden (siehe
/usr/share/doc/debian-policy/policy.html/index.html
).
developers-reference
- Die Debian
Entwickler-Referenz
beschreibt alle Dinge, die nicht speziell die
technischen Details der Paketerstellung betreffen, beispielsweise die Struktur
des Archivs, wie man Pakete umbenennt, aufgibt, übernimmt, NMUs durchführt,
Fehler verwaltet, gute Pakete erstellt, wie und wo ins Archiv hochlädt usw.
(siehe /usr/share/doc/developers-reference/
).
Das Autotools
Tutorial
ist eine sehr gute Einführung für das GNU-Build-System, das
als GNU Autotools bekannt ist
. Die wichtigsten Komponenten sind
Autoconf, Automake, Libtool und gettext.
gnu-standards
- Dieses Paket enthält zwei Teile der Dokumentation
des GNU-Projekts: die GNU Coding
Standards
und Informationen für
Betreuer von GNU-Software
. Obwohl Debian nicht verlangt, dass diese
befolgt werden, sind sie trotzdem hilfreich als Richtlinie und sinnvoll (siehe
/usr/share/doc/gnu-standards/standards.html
und
/usr/share/doc/gnu-standards/maintain.html
).
Wenn dieses Dokument mit den Debian-Richtlinien oder der Debian
Entwickler-Referenz im Widerspruch steht, dann haben die beiden anderen Recht.
Bitte schreiben Sie einen Fehlerbericht an das Paket maint-guide
.
Die kurzen Erklärungen oben dienen nur dazu, Ihnen eine Einführung in die verschiedenen Pakete zu geben. Bevor Sie weitermachen, sollten Sie die Dokumentation jedes Programms durchlesen, zumindest was die normale Arbeitsweise angeht. Das mag Ihnen am Anfang überflüssig vorkommen, aber schon bald werden Sie sehr froh darüber sein, sich schon vorher informiert zu haben.
Es gibt zwei Arten von Paketen.
Quellpaket (»source package«): Ein Quellpaket ist eine
Sammlung von Dateien, die Code und Daten enthalten. Diese können Sie
kompilieren und ausführbare Programme und formatierte Dokumente erzeugen.
Üblicherweise ist ein Quellpaket eine Kombination aus
*.orig.tar.gz
, *.debian.tar.gz
(oder
*.diff.gz
) und *.dsc
. Es können auch einige andere
Archive und Kompressionsmethoden verwendet werden.
Binärpaket (»binary package«): Ein Binärpaket enthält
ausführbare Programme und formatierte Dokumente. Üblicherweise ist dies eine
*.deb
-Datei für das normale Debiansystem und eine
*.udeb
-Datei für den Debian-Installer.
Verwechseln Sie nicht Begriffe wie »Quelle des Programms« und »Quellpaket des Programms«!
Es werden innerhalb von Debian verschiedene Namen für bestimmte Rollen benutzt.
Ursprünglicher Autor (»upstream author«): Die Person, die das ursprüngliche Programm geschrieben hat.
Ursprünglicher Betreuer (»upstream maintainer«): Die Person, die das Programm zurzeit betreut.
Betreuer (»maintainer«): Die Person, die ein Debian-Paket des Programms erstellt oder betreut.
Sponsor: Die Person, die Betreuern hilft, Pakete in das offizielle Debian-Archiv hochzuladen, nachdem sie den Inhalt überprüft hat.
Mentor: Die Person, die neuen Betreuern beim Paketieren usw. hilft.
Debian-Entwickler (»Debian Developer«, DD): Die Person, die ein Debian-Mitglied ist. Sie hat unbeschränkte Rechte, Pakete in das offizielle Debian-Paketarchiv hochzuladen.
Debian-Betreuer (»Debian Maintainer«, DM): Die Person, die beschränkte Rechte hat, Pakete in das offizielle Debian-Paketarchiv hochzuladen.
Es werden innerhalb von Debian verschiedene Namen für Versionen benutzt.
Version der Originalquelle (»upstream source version«): Die Version der Originalquelle wird als Version bezeichnet.
Debian-Revision (»Debian revision«): Die Revision des Pakets innerhalb von Debian wird als Revision bezeichnet.
Debian-Paketversion (»Debian package version«): Die Debian-Paketversion wird wie folgt bezeichnet.
Version für native Debian-Binärpakete und für das Debian-Quellpaket.
Version-Revision für nichtnative Debian-Binärpakete.
Bitte lesen Sie die anderen Handbücher, wenn Sie weitere Details über die Terminologie benötigen.
Sie können nicht über Nacht offizieller Debian-Entwickler
(»Debian Developer«, DD) werden, weil es dafür mehr als nur technische
Fähigkeiten braucht. Bitte lassen Sie sich davon nicht entmutigen. Wenn Ihr
Paket für andere nützlich ist, können Sie es entweder als
Betreuer über einen Sponsor oder als
Debian-Betreuer trotzdem hochladen. Siehe Debian New
Maintainers
für mehr Informationen.
Bitte beachten Sie, dass Sie kein neues Paket erstellen müssen, um offizieller Debian-Entwickler zu werden. Auch Beiträge zu existierenden Paketen können ein Weg sein, offizieller Debian-Entwickler zu werden. Es gibt viele Pakete, die auf einen guten Betreuer warten (siehe Ihr Programm auswählen, Abschnitt 2.1).
Bevor Sie Ihre Frage in aller Öffentlichkeit stellen, lesen Sie bitte die
verfügbaren Anleitungen (»RTFM«). Dies beeinhaltet die Dokumentation in
/usr/share/doc/dpkg
, /usr/share/doc/debian
,
/usr/share/doc/autotools-dev/README.Debian.gz
,
/usr/share/doc/Paket/*
-Dateien und die
man
/info
-Seiten für alle Programme, die in diesem
Dokument erwähnt werden. Siehe auch die gesamten Informationen unter http://nm.debian.org/
.
Das Erstellen eines kleinen Testpakets ist ein guter Weg, um die Details der Paketerstellung zu lernen. Das Untersuchen von existierenden, gut betreuten Paketen ist die beste Art zu lernen, wie andere Leute Pakete machen.
Wenn Sie immer noch Fragen über das Paketieren haben und in der vorhandenen
Dokumentation sowie den Webressourcen keine Antworten finden konnten, können
Sie die Fragen auf der Mailingliste der Debian-Mentoren unter debian-mentors@lists.debian.org
stellen. Die erfahreneren Debian-Entwickler werden Ihnen gerne helfen, aber
lesen Sie zumindest einiges der Dokumentation, bevor Sie Fragen stellen!
Siehe http://lists.debian.org/debian-mentors/
für mehr Informationen über diese Mailingliste.
Wenn Sie einen Fehlerbericht erhalten (ja, tatsächliche Fehlerberichte!), ist
es Zeit für Sie, tiefer in das Debian-Fehlerverfolgungssystem
einzusteigen und die dort vorhandene Dokumentation zu lesen, damit Sie mit den
Berichten effizient umgehen können. Ich empfehle dringend, die Entwickler-Referenz,
5.8. »Handling bugs«
zu lesen.
Wenn Sie immer noch Fragen haben, stellen Sie diese auf der Mailingliste für
Debian-Entwickler unter debian-devel@lists.debian.org
.
Siehe http://lists.debian.org/debian-devel/
für mehr Informationen über diese Mailingliste.
Selbst wenn alles gut funktioniert hat, ist es jetzt an der Zeit, mit dem Beten anzufangen. Warum? Weil in wenigen Stunden (oder Tagen) Benutzer überall auf der Welt Ihr Paket verwenden werden, und wenn Sie einen kritischen Fehler gemacht haben, werden Sie von unzähligen verärgerten Debian-Benutzern mit E-Mails überschüttet ... war nur ein Scherz. :-)
Entspannen Sie sich und stellen Sie sich auf Fehlerberichte ein, denn es ist noch viel mehr Arbeit zu erledigen, bevor Ihr Paket vollständig im Einklang mit den Debian-Richtlinien sowie dessen bewährten Verfahren ist (nochmals: lesen Sie die wirkliche Dokumentation für Details). Viel Glück!
[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ weiter ]
Anleitung für zukünftige Debian-Betreuer
Diese Übersetzung wird derzeit aktualisiert. Teile beruhen auf Version 1.2.3 vom 18. Januar 2005, die aktuelle Version ist 1.2.25, 2010-12-22 12:44:34 UTCjoy-mg@debian.org
toddy@debian.org
mail@erikschanze.de
blade@debian.org