AA_rechnen.tif

© Miredi, Fotolia

Wie am Schnürchen

Debian-Pakete bauen von einfach bis anspruchsvoll

In nur wenigen Schritten verwandeln Sie Quellcode-Archive in vollwertige Debian-Pakete, wie sie Ubuntu 9.04 verwendet.

Linux-Anwender überwinden nach einigem Umgang mit dem System schnell die Angst vor dem Neuen: Die einst bedrohliche Kommandozeile erlangt als unentbehrlicher Helfer neue Wertschätzung, der früher Ehrfurcht gebietende Compiler dient als selbstverständliches Werkzeug zum Bau neuer Software; dieses Programm übersetzt den in einer höheren Programmiersprache geschriebenen Quellcode in ablauffähige Maschinenbefehle.

Mit etwas Routine stellt das Übersetzen und Einrichten mit dem Linux-typischen Dreischritt configure, make und sudo make install keine große Hürde mehr dar. Anschließend gibt es aber ein Problem: Der Paketmanager weiß nichts von den händisch eingespielten Dateien. Wie halten Sie also ein System schlank, in dem es von manuell installierten Softwarepaketen wimmelt? Ganz einfach: Vertrauen Sie auch die selbst kompilierten Programme dem Paketmanager an und machen Sie Debian-Pakete draus.

Checkinstall

Es gibt mehrere Methoden, das zu tun: Das Programm Checkinstall [1] (Abbildung 1) bietet die wohl einfachste Möglichkeit, DEB- und RPM-Pakete (letztere für Distributionen wie Fedora und OpenSuse) zu erzeugen [2]. Checkinstall überzeugt zwar durch seine einfache Handhabung, versagt aber, wenn ein Paket vor und nach dem Installieren so genannte Pre- und Post-Install-Skripte ausführt. In diese Kategorie fallen beispielsweise alle Pakete, die mit enthaltenen Kernel-Modulen den Betriebssystemkern mit zusätzlichen Funktionen ausstatten.

Abbildung 1

Abbildung 1: Checkinstall sammelt Informationen zum Programm, bevor es ein distributionsspezifisches Paket erstellt und installiert, definiert aber keine Abhängigkeiten.

Wer DEB-Pakete bevorzugt, die auch auf anderen Systemen laufen, benötigt also mehr als die von Checkinstall erzeugten Rumpfpakete. Debian-basierte Distributionen bringen daher vor allem im Paket dpkg-dev eine Menge Werkzeuge mit, die das Anfertigen von Paketen vereinfachen.

Original statt Imitat

Debian-Pakete lassen sich ganz einfach bauen, sofern das Quelltextverzeichnis bereits entsprechend präpariert ist. Dann liegen alle notwendigen Informationen im Unterverzeichnis debian des Sourcecode-Verzeichnisses. Bietet die Distribution die gewünschte Software bereits als gewöhnliches DEB-Paket an, dann trifft das meist zu. Um diese Version neu zu kompilieren – etwa mit Unterstützung für zusätzliche Features – laden Sie zunächst den dazugehörigen Quelltext über apt-get source replaceablePaketname (ohne sudo) herunter. Eventuell müssen Sie dazu über Synaptic die Paketquelle Quelltexte aktivieren.

Die heruntergeladenen Dateien landen in dem Verzeichnis, aus dem Sie den Befehl absetzen. Sie finden drei neue Dateien und ein Verzeichnis vor. Die Dateinamen setzen sich aus dem Namen der Software, der Versionsnummer des Pakets und gegebenenfalls einer internen Revisionsbezeichnung wie ubuntu2 zusammen. Bei einer der drei Dateien handelt es sich um das Originalarchiv mit der Endung .orig.tar.gz. Das File mit dem Suffix .diff.gz enthält die Änderungen, die der Distributor am Originalquelltext vorgenommen hat, um das Paket an sein System anzupassen. Dazu kommt eine .dsc-Datei, die eine Paketbeschreibung mit Angaben zu den unterstützten Prozessorarchitekturen und den Paket-Verantwortlichen liefert. Das von apt-get source angelegte Verzeichnis enthält zudem das bereits erwähnte Verzeichnis debian.

Im einfachsten Fall nehmen Sie nun die gewünschten Änderungen vor. Sie ergänzen beispielsweise die Software um eine bestimmte Programmbibliothek, um so ihre Fähigkeiten zu erweitern. Sie bauen in den Quelltext weitere Features ein oder spielen Patches mit Änderungen ein. Um dann ein neues Debian-Paket zu erzeugen, geben Sie im Quelltextverzeichnis den Befehl dpkg-buildpackage ein, der zum Paket dpkg-dev gehört.

Um auf diese Weise ein Paket zu bauen, benötigen Sie eigentlich administrative Rechte. , Installieren Sie hingegen das Paket fakeroot, schwenkt dpkg-buildpackage automatisch auf dessen Verwendung um, wenn Sie es ohne administrative Rechte aufrufen. Mit Fakeroot gelingt der Debian-Bau auch mit Schreibrechten im Quelltext- und im darüber liegenden Verzeichnis.

Das Programm untersucht zuerst, ob es die zum Kompilieren notwendigen Tools und Bibliotheken überhaupt gibt. Falls nicht, gibt es eine Liste der fehlenden Pakete aus, die Sie nun nachinstallieren. Andernfalls ruft es das Skript configure und dann make auf. Abschließend erzeugt es die DEB-Pakete und legt sie im übergeordneten Verzeichnis ab. Zur Installation gilt es den Paketmanager zu bemühen; auf der Kommandozeile lautet der notwendige Befehl:

$ sudo dpkg -i replaceablePaketname.deb

Das eben gezeigte Verfahren eignet sich zwar nicht für größere Änderungen, dennoch empfiehlt es sich, auch Details zur späteren Nachlese zu dokumentieren. Dafür gibt es die Datei changelog im Verzeichnis debian – halten Sie exakt das dort vorgegebene Format ein, sonst bricht der Paketbau ab.

Einem Freund empfehlen