Kurze Anleitung für die Paketerstellung unter Debian:

 

1.    Um ein Paket zu bauen braucht man den SourceCode des zu debianisierenden

      Programms und ein paar Programme die zur Paketerstellung benötigt werden.

      (siehe Anhang: Benötigte Programme)

 

2.    Der Quelltext muss in ein Verzeichnis entpackt oder kopiert werden welches, durch

      Debian vorgeschrieben, folgendermassen aussieht: "Programmname-Versionsnummer".

 

3.    Wenn dies getan ist gibt man in der Shell (im Verzeichnis: "Programmname-Versionsnummer")

      den Befehl: dh_make ein. Durch diesen Befehl wird ein Unterverzeichnis ("/debian")

      erzeugt, welches Vorlagen der Dateien enthält, die zum Paketbau benötigt werden.

      (siehe Anhang: Das debian-Unterverzeichnis)

 

4.    Diese Dateien (rules, copyright, changelog, control, dirs, menu...) sind

      entsprechend des jeweiligen Pakets anzupassen. Die wichtigste Datei ist

      hierbei das rules-File, welches eine Art Makefile ist, welches direkt auf

      das Makefile des Programms und damit auf die Kompilieranweisungen... zugreift

      bzw. zugreifen kann.

      D.h.: für jedes DebianPaket und somit für jedes zu debianisierende

      Programm sind eigene, programmspezifische Dateien nötig.

 

5.    Wenn die Dateien modifiziert sind, im Verzeichnis: "Programmname-Versionsnummer"

      den Befehl: dpkg-buildpackage in der Shell eingeben und der Paketbau beginnt.

 

(genauere Anleitung: siehe: Debian-New-Maintainers-Guide)

 

Anhang:

 

* Das debian-Unterverzeichnis

 

Alle zur Erstellung des Debian-Pakets notwendigen Dateien befinden sich im debian-

Unterverzeichnis(optionale Dateien enden auf ".ex", bei Gebrauch umbennen(".ex" entfernen)).

 

README.Debian:    README-Datei die später im /usr/share/doc/.. Verzeichnis abgelegt wird.

                  Hier sollten Debian-spezifische Anpassungen oder Kompilierungsoptionen

                  oder Abweichungen von der upstream-Version dokumentiert werden.

changelog:        Enthält die Änderungshistory des Debian-Pakets. Achtung die Datei muß in

                  einem speziellen Format vorliegen.

conffiles.ex:     Enthält eine Liste von Konfigurationsdateien, die dpkg beachten sollten.

control:          Enthält die Informationen, die mit dpkg --info ausgegeben werden können.

                  Hier muß auch die Beschreibung des Pakets angepasst werden.

copyright:        Hier sollte die Website oder ftp-URL angegeben werden, von wo das Orginal-

                  Paket bezogen werden kann. Autoren und weitere upstream Copyright-

                  Hinweise müssen hier eingetragen werden.

cron.d.ex:        Beispiel-crontab (optional)

dirs:             Enthält die Verzeichnisse, die bei Bedarf von dpkg während der Installation

                  erzeugt werden sollen. Im einfachsten Fall muß hier nichts geändert werden,

                  oder einfach nur das Installationsverzeichnis eingetragen werden (z.B. /usr/

                  bin).

docs:             Liste von Dateien, die aus den Orginalquellen nach /usr/share/doc/paket

                  übernommen werden sollen.

emacsen-install.ex:     Emacs-spezifisch (optional)

emacsen-remove.ex:      Emacs-spezifisch (optional)

emacsen-startup.ex:     Emacs-spezifisch (optional)

ex.doc-base.package:    Für Pakete mit eigener HTML-Dokumentation. Wird benötigt, um die Paket-

                  Dokumentation bei doc-base zu registrieren (damit sie mittels dhelp(1) oder

                  dwww(1) gefunden werden kann). (optional)

init.d.ex:        Für Pakete die einen Daemon enthalten und von init gestartet werden sollten

                  (Initskript). (optional)

manpage.1.ex:     Skellet einer Manpage (troff(1)). (optional)

manpage.sgml.ex:  Skellet einer Manpage im SGML-Format (Docboc). (optional)

menu.ex:          Einstellungen für das Debian-Menu system. Ermoeglich es auf einfach Art

                  einen Menüeintrag für das Paket zu erstellen, der dann in allen X11-

                  Umgebungen sichtbar ist.

postinst.ex:      Skript, das nach der Installation ausgeführt werden soll

postrm.ex:        Skript, das nach dem Entfernen des Pakets ausgeführt werden soll.

preinst.ex:       Skript, das vor der Installation ausgeführt werden soll.

prerm.ex:         Sript, das vor dem Entfernen ausgeführt werden soll.

rules:            Enthält die Regeln die dpkg-buildpackage auswertet, um das Paket zu

                  erstellen.

watch.ex:         Siehe uscan(1) und uupdate(1). (optional)

 

 

* Benötigte Programme

 

binutils          diese Programme werden zum Assemblieren und Linken der Objekt-Dateien

                  benötigt - den Stoff, aus dem die Programme sind. (siehe `info binutils')

cpp               der C-Präprozessor. (siehe cpp(1))

cpio              das ist ein Archivierungsprogramm wie tar oder zip. (siehe cpio(1))

dpkg-dev          dieses Paket enthält die Tools, die zum Entpacken, Erstellen und dem Hochladen

                  der Quell-Pakete benötigt werden. (siehe dpkg-source(1))

file              dieses handliche Programm kann den Typ einer Datei feststellen. (siehe file(1))

gcc               der GNU-C-Compiler. Die meisten Linux-Programme sind in C geschrieben. Ist ihr

                  Programm in einer anderen Sprache geschrieben, z.B. C++, Fortran, Pascal,

                  sollten Sie g++, g77, gpc oder einen anderen benötigten Compiler installieren.

                  (siehe gcc(1), g++(1), g77(1), gpc(1))

libc6-dev         die C-Bibliotheken und Header-Dateien, die gcc zum Linken und Erstellen von

                  Objekt-Dateien benötigt. Auch wenn einige Programme immer noch libc5 empfehlen/

                  benutzen, sollten Sie die neuere Version verwenden (libc6). (siehe `info libc')

make              normallerweise wird ein Programm in mehreren Schritten erstellt. Statt wieder und

                  wieder die selben Befehle zu tippen, können Sie das Ganze mit Hilfe dieses Programms und

                  der sogenannten `Makefile's automatisieren. Einige Programme verwenden auch imake und

                  xmkmf, beides Programme die zur Generierung von Makefile aus einem Satz von Makro-

                  Funktionen dienen. Viele neue Programme benutzen auch configure-Skripte und Makefile-

                  Vorlage mit Hilfe der Programm wie autoconf und automake, also benötigen Sie diese

                  wahrscheinlich auch. (siehe `info make`, imake(1), xmkmf(1), autoconf(1),automake(1))

patch             ein sehr nützliches Programm, dass eine sog. diff-Datei, eine Auflistung der

                  Unterschiede im Dateiinhalt (produziert mit dem Programm "diff"), auf die ursprüngliche

                  Datei anwendet und daraus die neue Version erzeugt. (siehe patch(1))

perl5             Perl ist eine der am meisten gebrauchten Skript-Sprachen auf heutigen Un*x-

                  Systemen, oft betrachtet als "Unix' Schweizer Offizierskettensäge". (siehe perl(1))

dh-make und debhelper   dh-make wird benötigt, um eine Vorlage des Beispiel-Pakets zu

                        erstellen, und es benötigt einige debhelper-Tools für die Paketerstellung. Sie sind nicht

                        zwingend erforderlich, aber für neue Maintainer sehr empfohlen. Es vereinfacht den ersten

                        Einstieg sehr, ebenso die später Kontrolle. (siehe dh_make(1), debhelper(1), /usr/share/

                        doc/debhelper/README)

devscripts        dieses Paket enthält einige nützliche Skripte, die für die Maintainer oft sehr

                  hilfreich sein können, aber nicht unbedingt zum Bauen der Pakete benötigt werden. (siehe /usr/

                  share/doc/devscripts/README.gz)

fakeroot          dieses Utility ermöglicht ihnen, die Identität des "root"s vorzutäuschen, was für

                  einige Teile des Build-Prozesses benötigt wird. (siehe fakeroot(1))

lintian           das ist Debians Paket-Prüfer, der sie über die üblichen Fehler nach der

                  Paketerstellung informiert und die gefundenen Fehler erklärt. (siehe lintian(1), /usr/share/

                  doc/lintian/lintian.html/index.html)

debian-policy     beinhaltet die Beschreibung der Struktur und des Inhalts eines Archives, Texte

                  über das Systemdesign, den Filesystem Hierarchy Standard, und das wichtigste (für Sie), es

                  beschreibt die Anforderungen, die ein Paket erfüllen muss, um in eine Distribution

                  aufgenommen zu werden. (siehe /usr/share/doc/debian-policy/policy.html/index.html)

developers-reference    für alle Fragen, die nicht ausschliesslich technischer Natur der

                        Paketerstellung sind, z.B. über die Struktur des Archivs, wie man Pakete umbenennt, aufgibt,

                        übernimmt, NMUs durchführt, Fehler verwaltet, wie und wo die Archive hochlädt usw. (siehe /

                        usr/share/doc/developers-reference/developers-reference.html/index.html)

 

* Wert Section der control Datei:

 

      bestimmt die Sektion der Distribution, in die das Paket gehört.

      Debian ist in Sektionen aufgeteilt ist: main (die Freie Software), non-free (nicht wirklich

      freie Software) und contrib (Freie Software, die von non-free-Sachen abhängt). Unterhalb dieser

      Sektionen existieren logische Untersektionen, die eine minimale Beschreibung des Pakets geben. D.h.

      die `admin'-Sektion enthält Programme für Administration, `base' die grundlegenden Pakete, `devel'

      die Pakete für die Programmierer, `doc' die Dokumentation, `libs' die Programmbibliotheken, `mail'

      die E-Mail-Reader und -Daemonen, `net' die Netzwerk-Anwendungen und Daemonen, `x11'-Sektion

      die X11-spezifischen Programme, usw.