Home / LinuxUser / 2008 / 02 / Wie am Schnürchen

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Wie am Schnürchen

Debian-Pakete bauen von einfach bis anspruchsvoll

01.02.2008 In nur wenigen Schritten verwandeln Sie ein Quelltextarchiv in ein vollwertiges Debian-Paket.

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

Mit etwas Routine stellt das Übersetzen und Einrichten mit dem Linux-typischen Dreischritt configure, make und 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 selbstkompilierten Programme dem Paketmanager an.

Checkinstall

Es gibt mehrere Methoden, das zu tun: Das Programm Checkinstall [1] (Abbildung 1) bietet die wohl einfachste Möglichkeit, DEB- und RPM-Pakete zu erzeugen [2]. Checkinstall überzeugt zwar durch seine einfache Handhabung. Es 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 mit Kernel-Modul.

Abbildung 1: Checkinstall sammelt Informationen wie Programmbeschreibung und -version, bevor es ein distributionsspezifisches Paket erstellt und installiert. Abhängigkeiten definiert es nicht automatisch.

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 Paketname (ohne Root-Rechte) herunter. Eventuell müssen Sie dazu über Synaptic die Paketquelle Quelltexte aktivieren.

Sie finden nun 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 meinedistribution3 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-Maintainern 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. Dazu benötigen Sie eigentlich Root-Rechte, doch mit dem Fakeroot gelingt der Debian-Bau auch mit Schreibrechten im Quelltext- und im darüber liegenden Verzeichnis. Haben Sie das Paket fakeroot installiert, hängen Sie an den Befehl zum Paketbau einfach den Parameter -rfakeroot an:

$ dpkg-buildpackage -rfakeroot

Das Programm dpkg-buildpackage untersucht, 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 das Programm 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 Paketname
.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    Druckansicht Bookmark and Share
Kommentare

4880 Hits
Wertung: 159 Punkte (16 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...