Dieses Dokument versucht, einem typischen Debian-Benutzer (und einem Möchtegern-Entwickler) in einer verständlichen Sprache die Technik der Paketerstellung für Debian GNU/Linux beizubringen, begleitet von funktionierenden Beispielen. Ein alter Römer hat mal 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 hervorragender Distribution machen, ist das Paket-System. Auch wenn es inzwischen massenhaft Linux-Software im Debian-Format vorhanden ist, muss man manchmal auch Software installieren, die es eben nicht als ".deb" 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 nur wenige Kenntnisse über die Unix-Programmierung mitbringen, aber Sie brauchen ganz sicher kein Guru zu sein.
Aktuelle Versionen dieses Dokuments sollten immer über http://www.debian.org/doc/maint-guide/
oder in dem `maint-guide'-Paket zu finden sein.
Bevor Sie loslegen können, müssen Sie sicherstellen, daß 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 aber davon aus, daß Sie diese Pakete schon installiert haben.
Dieses Dokument entstand noch als die Slink-Distribution (2.1) die stabile Version war, und Potato (2.2) gerade entwickelt wurde - deswegen sind die die meisten aufgeführten Pakete aus `Potato'.
Die folgenden Pakete kommen mit der Standard-Installation von Debian 2.1, also werden Sie sie vermuttlich schon haben (und zusätzliche Pakete, von den sie abhängen). Sie können es dennoch überprüfen, z.B. mit `dpkg -s <package>`.
cpp(1)
)
cpio(1)
)
dpkg-source(1)
)
file(1)
)
gcc(1)
, g++(1)
,
g77(1)
, gpc(1)
)
imake(1)
, xmkmf(1)
, autoconf(1)
,
automake(1)
)
patch(1)
)
perl(1)
)
Aus der `devel'-Sektion der Distribution sollten Sie vielleicht folgendes installieren:
dh_make(1)
, debhelper(1)
,
/usr/share/doc/debhelper/README)
fakeroot(1)
)
lintian(1)
, /usr/share/doc/lintian/lintian.html/index.html)
Und schliesslich noch diese sehr wichtigen Pakete in der doc-Sektion der Distribution:
Sie werden ebenfalls ein Verschlüsselungsprogramm brauchen, entweder PGP (die "pgp-*"-Pakete) oder GPG (das gnupg-Paket), um ihr Paket digital zu signieren. Dies ist besonders wichtig, wenn Sie das Paket an andere Menschen verteilen wollen (und das werden Sie sicher tun, wenn ihre Arbeit in die Debian-Distribution aufgenommen wird). Dummerweise kann aufgrund der bescheuerten U.S.-Exportgesetze nicht jeder diese Pakete von dem nächstliegenden Debian-FTP-Server beziehen. Dennoch bietet Debian diese Pakete an, und zwar über FTP-Server, die physisch ausserhalb von USA liegen, z.B. non-US.debian.org (ftp://non-us.debian.org/debian-non-US/). Auf "ihrem" FTP-Server befindet sich eine Datei namens README.non-US, mit der Sie den nächstliegenden non-US-Spiegelserver finden können.
Die kurzen Erklärungen oben dienen nur der Einführung. Bevor sie weitermachen,
sollten Sie die Dokumentation jedes Programms durchlesen, dass Sie verwenden
werden. Das mag 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
weiterbeschrieben, die Dokumentation von debmake finden Sie im the Debmake manual
.
Sie können zwei Arten von Paketen erstellen: binäre 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 author' die Person, die das Programm eigentlich macht und `upstream maintainer' die Person ausserhalb von Debian, die zur Zeit das Programm pflegt. üblicherweise sind `upstream author´ 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 vermuttlich 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 es.
Anleitung für zukünftige Debian-Maintainer
Version 1.0.2, 10. Juni 2001.joy-mg@debian.org
edi@ka.linux.de