LPI-Prüfungsvorbereitung LPIC-2

> # Aufbau eines DEB-Paketes

> Auch ein Debian Paket wird gewöhnlich aus einem Quellcode-Paket aufgebaut, das dann kompiliert und als Binärpaket gepackt wird. Wiederum werden wir mit den entsprechenden Beispieldateien arbeiten, die wir schon beim RPM-Paketformat benutzt haben:

> - hallo.c
>   Der C-Quellcode des Programms
> - Makefile
>   Das Makefile für das Programm mit den Regeln all und install.
> - README
>   Eine (sehr spärliche) Dokumentation

> Wir erstellen aber zunächst nur ein Verzeichnis, das diese Dateien enthält und den Namen (mit Versionsnummer) des Programms enthält. Für unser Beispiel wird das also das Verzeichnis `hallo-1.0.0` sein. Alle drei Dateien (hallo.c, Makefile und README) liegen in diesem Verzeichnis. Nach einem Wechsel in dieses Verzeichnis rufen wir jetzt den Befehl

>       dh_make

> auf. Dabei wird zunächst die Frage gestellt, ob dieses Paket ein einzelnes Binärprogramm (single binary), mehrere Binärprogramme (multiple binary) oder eine Library enthält.

>       Type of package: single binary, multiple binary, or library? [s/m/l]

> Wir antworten hier natürlich mit s für Single Binary. Jetzt zeigt uns das Programm die errechneten Einstellungen:

>       Maintainer name : werauchimmer
>       Email-Address   : werauchimmer@irgendwo
>       Date            : Mon, 25 Mar 2002 16:52:35 +0100
>       Package Name    : hallo
>       Version         : 1.0.0
>       Type of Package : Single
>       Hit <enter> to confirm:

> Nachdem wir das mit Enter bestätigt haben gibt `dh_make` noch folgende Meldung aus:

>       Done. Please edit the files in the debian/ subdirectory now. You should also
>       check that the hallo Makefiles install into $DESTDIR and not in / .

> Nach dieser Meldung ist das Programm beendet. Es hat aber jetzt ein Unterverzeichnis `debian` erstellt, in dem sich die Vorlagen (Templates) für die Paketerstellung befinden. Wir müssen jetzt in diesem Verzeichnis verschiedene Anpassungen vornehmen, die für den weiteren Verlauf wichtig sind.

> Außerdem weist uns dh_make darauf hin, dass wir unser Makefile entsprechend manipulieren sollten, damit das Programm nach $DESTDIR installiert wird, statt an eine beliebige andere Stelle. Das liegt daran, dass Debian eine sehr klare Definition hat, wohin Binärdateien installiert werden sollen. Wir ändern also das Makefile entsprechend folgendermaßen:

>       install:
>             cp hallo $(DESTDIR)

> Im Verzeichnis debian müssen wir jetzt die entsprechenden Dateien anpassen. Die wichtigsten sind dabei:

> - README.Debian
>   Diese Datei enthält Hinweise, die beschreiben, welche Änderungen an diesem Paket vorgenommen wurden, damit es für Debian funktioniert. Wenn keine Änderungen notwendig waren können wir die Datei einfach löschen. Für unser einfaches Beispiel können wir das bedenkenlos tun.
> - copyright
>   Hier sollten wir mindestens unseren Namen und die verwendete Lizenz angeben, also etwas in der Art:

>         This package was debianized by Florian Kalhammer <f.kalhammer@online.de> on
>         Mon, 25 Mar 2002 16:52:35 +0100.

>         Copyright:

>         This code is released under the terms of the GPL license.
>         See /usr/share/common-licenses/GPL for the full license.

>   Wenn das Paket von anderen Autoren ist, sollten wir auch noch die Orginal-Quelle (FTP-Server) und die Adresse des Autors angeben.
> - control
>   Diese Datei enthält Informationen über das Programm, seinen Autor, die Sektion und die Priorität des Paketes. Zudem enthält es eine Kurzbeschreibung und eine längere Beschreibung (die mit einem Leerzeichen in jeder Zeile beginnt):

>         Source: hallo
>       Section: utils
>       Priority: optional
>       Maintainer: Florian Kalhammer <f.kalhammer@online.de>
>       Build-Depends: debhelper (>> 3.0.0)
>       Standards-Version: 3.5.2

>       Package: hallo
>       Architecture: any
>       Depends: ${shlibs:Depends}
>       Description: A simple hello word programm.
>        This is a simple example for the building process of debian packages.
>        It contains one simple binary hello world programm which is mostly
>        worthless for any user.

> - rules
>   Diese Datei ist sozusagen die Aufbauanleitung für das Paket. Im Wesentlichen entspricht sie der SPEC-Datei der RPM-Pakete. Auch hier sind entsprechende Sektionen für das Kompilieren, Installieren und Aufräumen vorhanden. Die einfache Voreinstellung ist hier einsehbar.
> - menu
>   In dieser Datei kann ein Menüeintrag für die verschiedenen Window-Manager vorgenommen werden, was in unserem Beispiel natürlich nicht nötig ist. Ein eventuell gewünschtes Icon wird hier auch angegeben.
> - postinst, preinst, postrm, prerm
>   Diese vier Dateien enthalten - analog zu den RPM-Paketen - die vier Scripts, die vor und nach der Installation bzw. vor und nach der Deinstallation abgearbeitet werden sollen.

> Nachdem diese Dateien angepasst wurden wechseln wir zurück in das Verzeichnis, das den Quellcode enthält und geben den Befehl

>       dpkg-buildpackage

> ein. Wenn alles geklappt hat, sollten im darüberliegenden Verzeichnis die folgenden Dateien erstellt worden sein:

> - hallo_1.0.0-1_i386.deb
>   Das eigentliche Debian-Paket
> - hallo_1.0.0-1.diff.gz
>   Die gemachten Veränderungen als Patches
> - hallo_1.0.0.orig.tar.gz
>   Das Orginal als Tar-Archiv
> - hallo_1.0.0-1_i386.changes
>   Eine Beschreibung des Paketes und der vorgenommenen Arbeiten
> - hallo_1.0.0-1.dsc

> Jetzt kann das Paket wieder einfach mit dpkg -i hallo_1.0.0-1_i386.deb installiert werden.

> Eine ausführliche (deutsche) Anleitung finden Sie im Debian GNU/Linux Anwenderhandbuch

> [ Zurück ] [ Zurück zur Startseite LPI 201 ] [ Zurück zur LPI-Seite ] [ Zurück zur Hauptseite von Linux-Praxis ] [ Guestbook ] [ Kontakt ]

> Diese und die darunterliegenden Seiten wurden erstellt von F. Kalhammer

> © 2001 by F.Kalhammer - all rights reserved.