Sie haben sich wahrscheinlich schon ein Paket ausgesucht, das Sie bauen wollen.
Zuerst sollte man am besten überprüfen, ob das Paket nicht bereits in der
Distribution existiert. Wenn Sie eine `stable'-Distribution verwenden, sollten
Sie am besten über Paket-Such-Seite
nach dem Paket suchen. [A.d.Ü.: Oder von der `unstable'-Distribution die
Contents-Datei ziehen und nach bekannten Dateinamen durch'grep'en.] Benutzen
Sie die aktuelle `unstable'-Distribution, versuchen Sie es mit
diesen Kommandos:
dpkg -s Programm dpkg -l '*Programm*'
Wenn es das Paket schon gibt, dann installieren Sie es! :-) Wenn es aufgegeben
wurde, d.h. wenn als Maintainer "Debian QA Group" eingesetzt ist,
dann können Sie es übernehmen. Schauen Sie auf der Liste der abgegebenen
Pakete
und der Liste der zu
adoptierenden Pakete
nach, welche Pakete dafür zur Verfügung stehen.
Wenn Sie ein Paket übernehmen möchten, laden Sie sich das Quell-Paket herunter (z.B. mit `apt-get source Paketname`) und nehmen Sie es unter die Lupe. Leider enthält dieses Dokument keine umfassende Anleitung zum Übernehmen von Paketen. Der Vorteil ist, dass schon jemand das Paket für Sie vorbereitet hat und Sie keine Schwierigkeiten haben sollten, herauszufinden, wie das Paket funktioniert. Doch lesen Sie weiter, denn viele der folgenden Ratschläge werden auch für Sie nützlich sein.
Wenn das Paket neu ist und Sie es gern in Debian integrieren möchten, gehen Sie wie folgt vor:
Liste der Pakete in
Arbeit
, dass niemand bereits an diesem Paket arbeitet. Wenn schon
jemand an dem Paket arbeitet, nehmen Sie mit ihm Verbindung auf, wenn es nötig
ist. Andernfalls finden Sie bestimmt ein anderes interessantes Paket, das von
niemandem betreut wird.
Debian Free Software
Guidelines
. Wenn sie diesen Richtlinien nicht entspricht, aber
trotzdem verteilt werden darf, kann das Paket oft noch in die Sektionen
`contrib' oder `non-free' aufgenommen werden. Sind Sie sich über die
Lizenzfragen nicht sicher, schicken Sie den Lizenz-Text an debian-legal@lists.debian.org
und bitten um Rat.
Natürlich sind die aufgeführten Punkte eher Sicherheitsmaßnahmen und sollten Sie vor tobenden Benutzern schützen, falls ihr setuid-Dienst irgendetwas Schlimmes anstellt. Wenn Sie mehr Erfahrungen im Paket-Erstellen gesammelt haben, können Sie sich auch an solchen Paketen versuchen, aber selbst erfahrene Debian-Entwickler fragen schon mal in der debian-mentors-Mailingliste, wenn sie irgendwo Zweifel haben. Und die Leute dort helfen gern.
Für weitere Fragen konsultieren Sie die "Developer's Reference".
Als Erstes müssen Sie das Original-Paket des Programms finden und herunterladen. Ich nehme an, dass Sie bereits die Quellcode-Dateien von der Homepage des Autors bezogen haben. Quellen der freien Linux-Programme kommen i.d.R. im tar/gzip-Format, mit der Erweiterung .tar.gz, und enthalten üblicherweise ein Unterverzeichnis, genannt nach dem PROGRAMM-VERSION-Schema, das alle Quellcode-Dateien enthält. Kommt der Quellcode in einem anderen Archivtyp daher (z.B. wenn der Dateiname auf ".Z" oder ".zip" endet), entpacken Sie es mit den entsprechenden Tools oder fragen Sie in der debian-mentors Mailingliste, wie man es richtig entpackt (Tipp: `file archive.extension` versuchen.)
Als Beispiel dient hier das Programm namens `gentoo', ein X GTK+-Dateimanager. Das Programm ist bereits verpackt, und wurde wesentlich verändert seit dieser Text geschrieben wurde.
Erstellen Sie ein Verzeichnis in Ihrem Home-Verzeichnis, z.B. 'debian' oder
'deb' oder irgendwas anderes, was für Sie geeignet erscheint, etwa
~/gentoo/
in diesem Fall. Kopieren Sie das heruntergeladene
Archiv dorthin, und entpacken Sie es, z.B. mit `tar zxvf
gentoo-0.9.12.tar.gz`. Vergewissern Sie sich, dass es keine Fehler beim
Entpacken gab, nicht mal sog. `irrelevante' Fehler, weil es auf anderen
Systemen Probleme geben kann, wenn andere Entpacker bestimmte Anomalien nicht
ignorieren.
Jetzt haben Sie ein neues Unterverzeichnis, 'gentoo-0.9.12'. Wechseln Sie
dorthin und lesen Sie die mitgelieferte Dokumentation komplett
durch. Meist sind die Dateien mit Namen nach dem Schema `README*',
`INSTALL*', `*.lsm' oder `*.html' benannt. Sie müssen eine Anleitung finden,
wie man das Programm richtig übersetzt und installiert (meistens wird von einer
Installation in /usr/local/bin/
ausgegangen, aber das wollen Sie
nicht. Mehr dazu später in Installation
in ein Unterverzeichnis, Abschnitt 4.1).
Der Prozess ist von Programm zu Programm unterschiedlich, aber viele moderne Programme kommen mit einem `configure'-Skript, das den Quellcode an die Systemumgebung anpasst. Nach dem erfolgreichen Konfigurieren mit `./configure` können die Programme mit `make` kompiliert werden. Einige unterstützen auch `make check`, das zusätzliche Selbsttests durchführt. Die Installation in die Zielverzeichnisse geschieht dann mit `make install`.
Versuchen Sie nun, das Programm zu kompilieren und stellen Sie sicher, dass es einwandfrei funktioniert und nichts anderes während der Installation oder der Ausführung kaputt macht.
Ebenfalls kann man `make clean` (oder besser `make dist-clean`) ausführen, um im aktuellen Arbeitsverzeichnis aufzuräumen. Manchmal gibt es sogar ein `make uninstall`, womit man alle installierten Dateien löschen kann.
Sie sollten mit einem aufgeräumten oder besser frisch ausgepackten Quellcode-Verzeichnis anfangen.
Damit alles richtig funktioniert, sollten Sie den ursprünglichen Namen in Kleinbuchstaben umwandeln. Ebenfalls sollten Sie den Namen zu <Paketname>-<Version> verändern.
Wenn der Programmname aus mehr als einem Wort besteht, sollten Sie statt dessen ein Wort oder eine Abkürzung verwenden. Zum Beispiel könnte man "John's little editor for X" in johnledx, oder jle4x umbenennen, oder wie auch immer, solange die Länge in einem vernünftigen Rahmen von etwa 20 Zeichen bleibt.
Überprüfen Sie auch die exakte Versionsnummer des Programms, die als Versionsnummer des Pakets verwendet wird. Wenn dieses Stück Software keine Nummerierung nach dem Schema X.Y.Z, sondern nach dem Datum verwendet, können Sie dieses Datum mit davor stehenden "0.0" verwenden ("0.0" für den Fall, das sich der `Upstream-Autor' dazu entschließt, eine zukünftige Version mit 1.0 zu nummerieren). In diesem Fall bekommt ein Abzug vom 19. Dezember 1998 eine Versionsnummer wie 0.0.19981219.
Einige Programme haben gar keine Versionsnummerierung, in diesem Fall sollten Sie den `Upstream-Maintainer' kontaktieren und eine eindeutige Methode ausarbeiten.
Wechseln Sie in das Quell-Verzeichnis des Programms und führen Sie Folgendes aus:
dh_make -e ihre.maintainer@adresse -f ../gentoo-0.9.12.tar.gz
Natürlich ersetzen Sie "ihre.maintainer@adresse" durch ihre eigene
E-Mail-Adresse für den Eintrag im `changelog' sowie anderen Dateien, ebenfalls
verwenden Sie den Dateinamen ihres Quellcode-Archivs. (Weitere Details in
dh_make(1)
).
Es werden einige Informationen angezeigt und Sie werden gefragt, welcher Art das Paket sein wird. Gentoo ist ein "single binary package" - es wird eine Binär-Datei und ein .deb-Paket erstellt, also wählen Sie die erste Option mit der `s'-Taste, überprüfen nochmal die Informationen und bestätigen mit <enter>.
Nach diesem Aufruf von dh_make
wird eine Kopie des
Upstream-Tarballs mit dem Namen gentoo_0.9.12.orig.tar.gz
im
übergeordneten Verzeichnis angelegt, um ein nicht-natives Debian-Quell-Paket
mit der Datei *.diff.gz
erstellen zu können. Beachten Sie zwei
wichtige Stellen in dem Dateinamen:
Um es noch einmal deutlich zu machen, einem beginnenden Maintainer wird davon abgeraten, komplizierte Pakete zu bauen, z.B.:
Es ist nicht zu schwer, erfordert aber etwas mehr Wissen. Deswegen wird hier nicht näher darauf eingegangen.
Beachten Sie, dass dh_make
nur ein Mal ausgeführt
wird und bei späteren Aufrufen nicht sauber funktioniert, wenn Sie es im
"debianisierten" Verzeichnis ausführen. Das bedeutet auch, dass Sie
bei späteren Updates mit neueren Programm-Versionen anders vorgehen müssen,
mehr dazu später in Weiterentwicklung des Pakets,
Kapitel 10.
Anleitung für zukünftige Debian-Maintainer
Version 1.2.3, 18. Januar 2005.joy-mg@debian.org
mail@erikschanze.de
blade@debian.org