[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ 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 alter Römer hat einmal gesagt: Longum iter est per preaecepta, breve et efficax per exempla! (Es ist ein langer Weg mit Regeln, aber ein kurzer und effizienter mit Beispielen!).
Eines der Dinge, die Debian zu einer hervorragenden Distribution machen, ist das Paket-System. Auch wenn inzwischen massenhaft Linux-Software im Debian-Format vorhanden ist, muss man manchmal auch Software installieren, die es eben nicht als ".deb"-Paket gibt. Sie fragen sich vermutlich, wie man eigene Pakete erstellt und vielleicht meinen Sie, es sei eine komplizierte Aufgabe. Nun, wenn sie ein blutiger Linux-Neuling sind, dann ist es wirklich hart, 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, braucht es Zeit. Um keine Fehler zu machen und damit unser System läuft, muss der Maintainer technisch kompetent sein und 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, und Ihnen etwas Erfahrung zu geben im Erstellen neuer Releases dieses, oder vielleicht später anderer Pakete.
Aktuelle Versionen dieses Dokuments sollten immer über http://www.debian.org/doc/maint-guide/
oder 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 - denn man kann davon ausgehen, dass Sie diese Pakete schon installiert sind.
Dieses Dokument wurde überarbeitet für die Pakete in Debian 2.2 (`potato') und 3.0 (`woody').
Die folgenden Pakete sind in der Standard-Installation von Debian enthalten, also werden Sie sie vermutlich schon haben (und zusätzliche Pakete, von denen sie abhängen). Sie können es dennoch überprüfen, z.B. mit `dpkg -s <package>`.
dpkg-dev
- dieses Paket enthält die Tools, die zum Entpacken,
Erstellen und Hochladen der Quell-Pakete benötigt werden. (siehe
dpkg-source(1)
)
file
- dieses handliche Programm kann den Typ einer Datei
feststellen. (siehe file(1)
)
gcc
- der GNU-C-Compiler ist nötig, wenn Ihr Programm, wie viele
andere auch, in der Programmiersprache C geschrieben wurde. (siehe
gcc(1)
) Dieses Paket wird einige andere Pakete in Ihr System
ziehen, wie binutils
, das Programme zum Assemblieren und Linken
der Objekt-Dateien enthält (siehe `info binutils` im Paket
binutils-doc
) und cpp
, den C-Präprozessor. (siehe
cpp(1)
)
g++
- der GNU-C++-Compiler wird benötigt, wenn Ihr Programm in C++
geschrieben wurde. (siehe g++(1)
)
libc6-dev
- die C-Bibliotheken und Header-Dateien, die gcc zum
Linken und Erstellen von Objekt-Dateien benötigt. (siehe `info libc` im
glibc-doc
Paket)
make
- normalerweise wird ein Programm in mehreren Schritten
erstellt. Statt wieder und wieder die selben Befehle zu tippen, können Sie das
Ganze mit Hilfe dieses Programms und der sog. `Makefile's automatisieren.
(siehe `info make`)
patch
- ein sehr nützliches Programm, das eine sog. diff-Datei,
eine Auflistung der Unterschiede im Dateiinhalt (produziert mit dem Programm
diff
), auf die ursprüngliche Datei anwendet und daraus die neue
Version erzeugt. (siehe patch(1)
)
perl5
- Perl ist eine der am meisten gebrauchten Skript-Sprachen
auf heutigen Unix-ähnlichen Systemen, oft betrachtet als "Unix' Schweizer
Offizierskettensäge". (siehe perl(1)
)
Sie sollten vielleicht auch folgende Pakete installieren:
autoconf
und automake
- Viele neue Programme benutzen
auch configure-Skripte und Makefile-Vorlagen mit Hilfe dieser Programme, also
benötigen Sie diese wahrscheinlich auch. (siehe `info autoconf`, `info
automake`)
dh-make
und debhelper
- dh-make wird benötigt, um
eine Vorlage des Beispiel-Pakets zu erstellen, und es benötigt einige
debhelper-Tools für die Paketerstellung. Sie sind nicht zwingend erforderlich,
aber für neue Maintainer sehr empfohlen. Es vereinfacht den
ersten Einstieg sehr, ebenso die spätere Kontrolle. (siehe
dh_make(1)
, debhelper(1)
,
/usr/share/doc/debhelper/README
)
devscripts
- dieses Paket enthält einige nützliche Skripte, die
für die Maintainer oft sehr hilfreich sein können, aber nicht unbedingt zum
Bauen der Pakete benötigt werden. (siehe
/usr/share/doc/devscripts/README.gz
)
fakeroot
- dieses Werkzeug ermöglicht Ihnen, die Identität des
"root"s vorzutäuschen, was für einige Teile des Build-Prozesses
benötigt wird. (siehe fakeroot(1)
)
gnupg
- ein Programm, 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)
)
g77
- der GNU-Fortran77-Compiler wird benötigt, wenn Ihr Programm
in Fortran geschrieben wurde.
gpc
- der GNU-Pascal-Compiler wird benötigt, wenn Ihr Programm in
Pascal geschrieben wurde. Man sollte an dieser Stelle auch
fp-compiler
, den `Free Pascal Compiler` erwähnen, der sich dafür
ebenfalls gut eignet. (siehe gpc(1)
, ppc386(1)
)
xutils
- Programme, die üblicherweise für X11 erstellt wurden, sie
dienen zur Generierung von Makefiles aus einem Satz von Makro-Funktionen.
(siehe imake(1)
, xmkmf(1)
)
lintian
- das ist Debians Paket-Prüfer, der Sie über die üblichen
Fehler nach der Paketerstellung informiert und die gefundenen Fehler erklärt.
(siehe lintian(1)
,
/usr/share/doc/lintian/lintian.html/index.html
)
linda
- das ist ein alternativer Debian-Paket-Prüfer. (siehe
linda(1)
)
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 und das
verhindert FTBFS-Fehler. (siehe pbuilder(8)
und
pdebuild(1)
)
Es folgen noch sehr wichtige Dokumentationen, die Sie neben diesem Dokument auch lesen sollten:
debian-policy
- die Policy beinhaltet die Beschreibung der
Struktur und des Inhalts eines Archivs, Texte über das Systemdesign, den
Filesystem Hierarchy Standard (der beschreibt, wo jede Datei und jedes
Verzeichnis ein sollte) etc. Das Wichtigste für Sie ist, sie beschreibt die
Anforderungen, 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
- für alle Fragen, die nicht ausschließlich
technischer Natur der Paketerstellung sind, z.B. über die Struktur des
Archivs, wie man Pakete umbenennt, aufgibt, übernimmt, NMUs durchführt, Fehler
verwaltet, Hinweise zum guten Paketieren, wie und wo ins Archiv hochlädt etc.
(siehe /usr/share/doc/developers-reference/index.en-us.iso-8859-1.html)
Die kurzen Erklärungen oben dienen nur der Einführung. Bevor Sie weitermachen, sollten Sie die Dokumentation jedes Programms durchlesen, das Sie verwenden werden, zumindest den normalen Umgang. Das mag Ihnen am Anfang überflüssig vorkommen, aber schon bald werden Sie froh darüber sein, sich schon vorher informiert zu haben.
Anmerkung: Das Paket debmake
enthält einige Programme, die dh-make
in der Funktionalität sehr ähneln. Die Benutzung von debmake wird hier
nicht beschrieben, weil es nicht mehr benutzt werden sollte
(deprecated). Informationen zu debmake finden Sie im Debmake-Manual
.
Sie können zwei Arten von Paketen erstellen: Binär- und Quell-Pakete. Ein Quell-Paket enthält den Code, aus dem man ein Programm kompilieren kann. Ein Binär-Paket enthält das fertige Programm. Bringen Sie die Begriffe Quellcode und Quell-Paket des Programms nicht durcheinander! Lesen Sie andere Anleitungen, falls die Terminologie nicht klar ist.
In Debian bezeichnet der Ausdruck `Maintainer' eine Person, die Pakete baut, `Upstream-Autor' die Person, die das Programm erstellt hat und `Upstream-Maintainer' die Person außerhalb von Debian, die zurzeit das Programm pflegt. Üblicherweise sind `Upstream Autor' und `Upstream-Maintainer' die selbe Person, und manchmal ist es sogar der Maintainer selbst. Wenn Sie also ein Programm erstellen und in Debian integriert sehen möchten, dann können Sie sich ruhig als Maintainer bewerben.
Nachdem Sie ein eigenes Paket erstellt haben (oder während Sie gerade dabei sind), möchten Sie vermutlich ein offizieller Debian-Maintainer werden, damit Ihr Paket den Weg in die nächste Distribution findet (wenn das Programm wirklich nützlich ist, warum nicht?). Dieser Prozess ist in der "Developer's Reference" beschrieben; bitte lesen Sie das.
[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ weiter ]
Anleitung für zukünftige Debian-Maintainer
Version 1.2.3, 18. Januar 2005.joy-mg@debian.org
mail@erikschanze.de
blade@debian.org