[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ weiter ]


Anleitung für zukünftige Debian-Betreuer
Kapitel 2 - Erste Schritte


Lassen Sie uns versuchen, Ihr eigenes Paket zu erstellen (oder, noch besser, ein vorhandenes zu übernehmen).


2.1 Ihr Programm auswählen

Sie haben sich wahrscheinlich schon ein Paket ausgesucht, das Sie erstellen wollen. Zuerst müssen Sie überprüfen, ob das Paket bereits in der Distribution existiert, indem Sie aptitude benutzen.

Sie können die Paketinformationen auch über die Paket-Suchseite und das Debian Package Tracking System überprüfen.

Wenn es das Paket schon gibt, na, dann installieren Sie es! :-) Wenn es aufgegeben (»orphaned«) wurde -- wenn als Betreuer »Debian QA Group« eingetragen ist, dann können Sie es übernehmen, wenn es noch verfügbar ist (überprüfen Sie den Besitzerstatus unter »Debian Bug report logs: Bugs in package wnpp in unstable«). Sie können auch ein Paket adoptieren, für das der entsprechende Betreuer einen »Request for Adoption« (RFA) geschrieben hat.

Es gibt verschiedene Listen von aufgegebenen oder zur Übernahme ausgeschriebenen Paketen, die zur Verfügung stehen:

Als wichtige Randbemerkung sei darauf hingewiesen, dass Debian bereits für fast alle Arten von Programmen Pakete enthält und die Anzahl der Pakete im Debian-Archiv wesentlich größer ist als die der Mitwirkenden mit Berechtigung zum Hochladen. Daher werden Beiträge zu Paketen, die bereits im Archiv enthalten sind, von anderen Entwicklern wesentlich mehr gewürdigt (und haben bessere Chancen, gesponsert zu werden) [3]. Sie können dies auf verschiedene Arten tun.

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:

Natürlich sind die aufgeführten Punkte eher Sicherheitsmaßnahmen und sollen Sie vor tobenden Benutzern schützen, falls ihr setuid-Daemon irgendetwas Schlimmes anstellt ... Wenn Sie mehr Erfahrungen im Erstellen von Paketen gesammelt haben, können Sie sich auch an solchen Paketen versuchen, aber selbst erfahrene Debian-Entwickler fragen schon mal auf der Mailingliste debian-mentors@lists.debian.org nach, wenn sie bei irgendetwas unsicher sind. Und die Leute dort helfen gern.

Für weitere Fragen konsultieren Sie die Debian Entwickler-Referenz.


2.2 Besorgen Sie sich das Programm und probieren Sie es aus

Als Erstes müssen Sie die Originalquellen des Programms finden und herunterladen. Ich nehme an, dass Sie bereits die Quellcode-Dateien von der Homepage des Autors bezogen haben. Quellen freier Unix-Programme sind üblicherweise im Format tar+gzip mit der Erweiterung .tar.gz oder im Format tar+bzip2 mit der Erweiterung .tar.bz2. Sie enthalten üblicherweise ein Unterverzeichnis, das Programmname-Version genannt ist sowie alle Quellcode-Dateien darin.

Wenn die neueste Version dieser Quellen über Versionskontrollsysteme wie Git, Subversion oder CVS verfügbar ist, müssen Sie sie mit »git clone«, »cvs co« oder »svn co« herunterladen und dann selbst einen Tarball im Format tar+gzip erstellen, indem Sie die Option »--exclude-vcs« verwenden.

Kommt der Quellcode in einem anderen Archivtyp daher (beispielsweise wenn der Dateiname auf .Z oder .zip endet[4]), entpacken Sie ihn mit den entsprechenden Werkzeugen und packen Sie ihn ebenfalls erneut.

Als Beispiel verwende ich hier ein Programm namens gentoo, einen X GTK+-Dateimanager.[5]

Erstellen Sie ein Unterverzeichnis in Ihrem Home-Verzeichnis namens debian oder deb oder irgendetwas, das Sie passend finden (beispielsweise wäre in diesem Fall nur ~/gentoo völlig in Ordnung). Kopieren Sie das heruntergeladene Archiv dorthin und entpacken Sie es (mit »tar xzf gentoo-0.9.12.tar.gz«). Vergewissern Sie sich, dass es keine Fehler beim Entpacken gab, nicht mal so genannte irrelevante Fehler, weil es dann höchstwahrscheinlich auf anderen Systemen Probleme beim Entpacken gibt, denn andere Entpacker ignorieren diese Anomalien vielleicht nicht. Auf Ihrer Konsole sollten Sie das Folgende sehen.

     $ mkdir ~/gentoo ; cd ~/gentoo
     $ wget http://www.example.org/gentoo-0.9.12.tar.gz
     $ tar xvzf gentoo-0.9.12.tar.gz
     $ ls -F
     gentoo-0.9.12/
     gentoo-0.9.12.tar.gz

Jetzt haben Sie ein neues Unterverzeichnis namens gentoo-0.9.12. Wechseln Sie dorthin und lesen Sie die mitgelieferte Dokumentation aufmerksam durch. Meistens gibt es Dateien mit den Namen README*, INSTALL*, *.lsm oder *.html. Sie müssen eine Anleitung finden, wie man das Programm richtig kompiliert und installiert (meistens wird von einer Installation in /usr/local/bin ausgegangen, aber das wollen Sie nicht. Mehr dazu später in Installation von Dateien in das Zielverzeichnis, Abschnitt 3.3).

Einfache Programme enthalten eine Makefile-Datei und können einfach durch den Aufruf von »make« kompiliert werden. Einige von ihnen unterstützen »make check«, wodurch die mitgelieferten Selbstüberprüfungen gestartet werden. Die Installation in das Zielverzeichnis wird üblicherweise mittels »make install« durchgeführt.

Versuchen Sie nun, das Programm zu kompilieren und auszuführen. Stellen Sie sicher, dass es einwandfrei funktioniert und nichts anderes während der Installation oder der Ausführung kaputt macht.

Meistens können Sie außerdem »make clean« (oder besser »make distclean«) ausführen, um im Build-Verzeichnis aufzuräumen. Manchmal gibt es sogar ein »make uninstall«, womit alle installierten Dateien gelöscht werden können.


2.3 Freie portierbare Programme

Viele Freie Programme sind in den Sprachen C oder C++ geschrieben. Die meisten von ihnen verwenden Autotools oder CMake, um auf verschiedene Plattformen portierbar zu sein. Die Werkzeuge werden benutzt, um die Datei Makefile und andere benötigte Quelldateien zu erzeugen. Anschließend werden solche Programme mit dem üblichen »make; make install« gebaut.

Die Autotools sind das GNU-Buildsystem, das aus Autoconf, Automake, Libtool und gettext besteht. Sie erkennen solche Quellen an den Dateien configure.ac, Makefile.am und Makefile.in. [6]

Der erste Schritt im Arbeitsablauf der Autotools ist üblicherweise, dass der ursprüngliche Autor »autoreconf -i -f« in den Quellen aufruft und diese Quellen dann mit den erzeugten Dateien verteilt.

     configure.ac-----+-> autoreconf -+-> configure
     Makefile.am -----+        |      +-> Makefile.in
     src/Makefile.am -+        |      +-> src/Makefile.in
                               |      +-> config.h.in
                           automake
                           aclocal
                           aclocal.m4
                           autoheader

Das Bearbeiten der Dateien configure.ac und Makefile.am erfordert etwas Wissen über autoconf und automake. Siehe »info autoconf« und »info automake«.

Der zweite Schritt im Arbeitsablauf der Autotools ist üblicherweise, dass der Benutzer diese verteilten Quellen erhält und »./configure && make« in den Quellen aufruft, um das Programm zu einer Binärdatei zu kompilieren.

     Makefile.in -----+                +-> Makefile -----+-> make -> Binärdatei
     src/Makefile.in -+-> ./configure -+-> src/Makefile -+
     config.h.in -----+                +-> config.h -----+
                               |
                config.status -+
                config.guess --+

Sie können in der Datei Makefile viele Dinge ändern, beispielsweise den voreingestellten Installationsort für Dateien, wenn Sie die Befehlszeilenoption »./configure --prefix=/usr« benutzen.

Obwohl es nicht erforderlich ist, kann die Aktualisierung der Datei configure sowie anderer Dateien durch den Benutzer mittels »autoreconf -i -f« die Kompatibilität der Quellen verbessern.

CMake ist ein alternatives Build-System. Sie erkennen solche Quellen an der Datei CMakeLists.txt.


2.4 Name und Version des Pakets

Sie sollten das Paketieren mit einem komplett aufgeräumten (»pristine«, makellosen) Quellcode-Verzeichnis anfangen oder die Quellen einfach frisch entpacken.

Damit das Paket richtig gebaut werden kann, müssen Sie den ursprünglichen Programmnamen in Kleinbuchstaben umwandeln (falls das nicht schon der Fall ist). Außerdem sollten Sie das Quellverzeichnis in Paketname-Version umbenennen.

Wenn der Programmname aus mehr als einem Wort besteht, ziehen Sie sie zu einem Wort zusammen oder erstellen eine Abkürzung. Zum Beispiel könnte das Paket des Programms »John's little editor for X« johnledx oder jle4x genannt werden -- oder was immer Ihnen einfällt, solange es in einem vernünftigen Rahmen bleibt, beispielsweise 20 Zeichen.

Überprüfen Sie außerdem die exakte Version des Programms (die in der Paketversion enthalten sein wird). Wenn die Software nicht mit Versionen wie X.Y.Z nummeriert ist, sondern mit einer Art Datum, können Sie dieses Datum als Versionsnummer benutzen, solange neuere Versionsnummern größer sind. Obwohl es am besten ist, dieselbe Versionsnummer zu verwenden, die der urspüngliche Autor benutzt, kann eine Umwandlung notwendig sein. Wenn die Version im Format 09Oct23 ist, müssen Sie sie in das Format YYYYMMDD umwandeln, also 20091023, damit das Programm dpkg eine vernünftige Aktualisierung durchführen kann. [7]

Einige Programme haben gar keine Versionsnummerierung. In diesem Fall sollten Sie den ursprünglichen Betreuer kontaktieren, um herauszufinden, ob er eine andere Methode benutzt, die Versionen zuzuordnen.


2.5 Das erste Debian-Paket

Lassen Sie uns die Umgebungsvariablen $DEBEMAIL und $DEBFULLNAME in der Bash-Shell setzen, damit viele Debian-Hilfswerkzeuge Ihren Namen und Ihre E-Mail-Adresse für Pakete verwenden können:

     $ cat >>~/.bashrc <<EOF
     DEBEMAIL=ihre.e-mail.adresse@example.org
     DEBFULLNAME="Vorname Nachname"
     export DEBEMAIL DEBFULLNAME
     EOF

Lassen Sie uns das erste Debian-Paket erstellen, indem Sie den Befehl dh_make wie folgt aufrufen.

     $ . ~/.bashrc
     $ cd ~/gentoo/gentoo-0.9.12
     $ dh_make -f ../gentoo-0.9.12.tar.gz

Natürlich ersetzen Sie den Dateinamen mit dem Namen Ihres originalen Quellcode-Archivs. [8] Siehe dh_make(1) für Details.

Es werden einige Informationen angezeigt. Sie werden gefragt, welche Art Paket Sie erstellen wollen. Gentoo ist ein »single binary package« - es wird nur eine Binärdatei und deshalb eine .deb-Datei erstellt, also wählen Sie die erste Option mit der »s«-Taste, überprüfen nochmal die Informationen auf dem Bildschirm und bestätigen mit »ENTER«. [9]

Nach diesem Aufruf von dh_make wird eine Kopie des ursprünglichen Tarballs mit dem Namen gentoo_0.9.12.orig.tar.gz im übergeordneten Verzeichnis angelegt, um später ein nichtnatives Debian-Quellpaket mit der Datei debian.tar.gz erstellen zu können.

     $ cd ~/gentoo ; ls -F
     gentoo-0.9.12/
     gentoo-0.9.12.tar.gz
     gentoo_0.9.12.orig.tar.gz

Bitte beachten Sie zwei entscheidende Merkmale in dem Dateinamen gentoo_0.9.12.orig.tar.gz:

Beachten Sie außerdem, dass viele Schablonendateien im Quellverzeichnis im Unterverzeichnis debian erstellt werden. Diese werden in Benötigte Dateien im Verzeichnis debian, Kapitel 4 und Andere Dateien unter debian/, Kapitel 5 erklärt. Weiterhin sollte Ihnen klar sein, dass das Paketieren kein automatischer Prozess ist. Sie müssen die ursprünglichen Quellen für Debian verändern, wie in Den Quellcode verändern, Kapitel 3 beschrieben. Nach all diesen Schritten müssen Sie die Debian-Pakete bauen, wie in "Bau" des Pakets, Kapitel 6 beschrieben, müssen sie überprüfen wie in Überprüfung des Pakets auf Fehler, Kapitel 7 beschrieben und zuletzt hochladen, wie in Hochladen des Pakets, Kapitel 8 beschrieben. Ich werde alle diese Schritte erläutern.

Um es noch einmal deutlich zu machen, als neuer Betreuer wird Ihnen davon abgeraten, komplizierte Pakete zu bauen, beispielsweise:

Es ist nicht allzu schwierig, erfordert aber etwas mehr Wissen. Deswegen wird hier nicht näher darauf eingegangen.

Wenn Sie versehentlich einige der Schablonendateien gelöscht haben, während Sie sie bearbeitet haben, können Sie diese wiederherstellen, indem Sie erneut dh_make mit der Option --addmissing in einem Debian-Quellverzeichnis aufrufen.

Das Aktualisieren eines existierenden Pakets kann kompliziert werden, weil es eventuell ältere Techniken verwendet. Bitte bleiben Sie für's Erste bei aktuellen Paketierungen, um die Grundlagen zu lernen. Ich werde später in Weiterentwicklung des Pakets, Kapitel 9 darauf zurückkommen und dies erklären.


[ 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-21 14:06:56 UTC

Josip Rodin joy-mg@debian.org

Übersetzung von Tobias Quathamer toddy@debian.org
Erik Schanze mail@erikschanze.de
und Eduard Bloch blade@debian.org