Wie Sie sehen gibt es noch verschiedene weitere Dateien im "debian/"-Unterverzeichnis, von den die meisten mit dem `ex'-Suffix oder Präfix versehen sind, was bedeutet, dass es sich um Beispiele handelt. Schauen Sie sich alle an. Wenn Sie eines dieser Features unbedingt brauchen oder einfach so verwenden möchten:
Einige dieser Dateien, die am meisten benutzten, werden in den folgenden Abschnitten beschrieben.
Alle zusätzlichen Details und nennenswerte Unterschiede zwischen dem Original und ihrer "debianisierten" Version sollten hier dokumentiert werden.
dh_make
erstellt eine Standardvorlage, die etwa so aussieht:
gentoo for Debian ----------------- <possible notes regarding this package - if none, delete this file> -- Josip Rodin <joy-mg@debian.org>, Wed, 11 Nov 1998 21:02:14 +0100
Da Sie nichts einzutragen haben, kann die Datei ruhig gelöscht werden.
Eine der ärgerlichsten Sachen bei Software ist es, wenn Sie richtig viel Zeit und Mühe in die Konfiguration eines Programms investieren, und schon das nächste Update ihre Konfigurationsdateien platt macht. Debian löst dieses Problem, in dem die Konfigurationsdateien markiert werden und der Administrator beim nächsten Paketupgrde gefragt wird, ob er seine Konfiguration behalten will oder nicht.
Zu markierende Konfigurationsdateien können Sie in die Datei `conffiles'
eintragen, pro Zeile ein Dateiname mit dem vollständigen Pfad der
Konfigurationsdatei (normalerweise in /etc/
). Gentoo hat eine
Konfigurationsdatei, /etc/gentoorc
, also werden Sie diesen String
in die Datei `conffiles' eintragen.
Wenn Ihr Programm Konfigurationsdateien nutzt, diese aber selbst
zurückschreibt, ist es das Beste, diese nicht als conffiles zu kennzeichnen,
weil sonst dpkg
den Nutzer jedes Mal auffordert Änderungen zu
bestätigen.
Wenn Ihr Programm, das Sie paketieren möchten, verlangt, dass der Nutzer die Konfigurationsdateien ändern muss, damit es überhaupt funktioniert, sollten Sie diese auch nicht als conffiles kennzeichnen.
Beispiel-Konfigurationsdateien können Sie durch `maintainer scripts' bereitstellen, siehe postinst.ex, preinst.ex, postrm.ex, prerm.ex, Abschnitt 6.12.
Wenn Ihr Programm keine Konfigurationsdateien braucht, kann die Datei `conffiles' aus dem Verzeichnis debian/ natürlich gelöscht werden.
Wenn Ihr Paket immer wiederkehrende Aufgaben erledigen muss, um ordentlich zu arbeiten, können Sie diese Datei benutzen um das einzurichten.
Beachten Sie, dass dies nicht die `log-rotation' einschließt, siehe
dh_installlogrotate(1)
und logrotate(8)
. (A.d.Ü: Ein
Programm, mit dem man das unbegrenzte Wachstum der Log-Dateien verhindern
kann.)
Wenn Sie das nicht brauchen, entfernen Sie die Datei.
In dieser Datei werden Verzeichnisse festgelegt, die Sie brauchen, aber von der Installationsprozedur (hier: "make install") nicht automatisch erstellt werden.
Die Vorlage sieht so aus:
usr/bin usr/sbin
Beachten Sie, dass kein einleitender Schrägstrich dabei ist. Normalerweise würden wir das jetzt ins Folgende ändern:
usr/bin usr/man/man1
Allerdings werden diese Verzeichnisse bereits durch das Makefile erstellt, also brauchen Sie die Datei `dirs' nicht und werden sie löschen.
Diese Datei enthält die Namen der Dokumentations-Dateien, die
dh_installdocs
für Sie ins Unterverzeichnis debian/ installieren
wird.
Standardmäßig schließt das alle Dateien im obersten Verzeichnis des Quellcode-Verzeichnisbaums ein, die da heißen "BUGS", "README*", "TODO" usw.
Für Gentoo fügen Sie noch Weiteres hinzu:
BUGS CONFIG-CHANGES CREDITS ONEWS README README.gtkrc TODO
Sie können die Datei auch löschen und statt dessen die Dateinamen in die
Kommandozeile von dh_installdocs
in der Datei `rules', wie hier:
dh_installdocs BUGS CONFIG-CHANGES CREDITS ONEWS README \ README.gtkrc TODO
Sollten Sie keine dieser Dateien in Ihrem Paket haben, können Sie die Datei
auch löschen. Aber löschen Sie nicht den Aufruf dh_installdocs
in
der Datei `rules', da dieser auch die `copyright'-Datei installiert und andere
Dinge tut.
Wenn Ihr Paket Emacs-Dateien mitbringt, die während der Installation des Paketes kompiliert werden, sollten Sie diese Datei dafür nutzen.
Sie werden durch dh_installemacsen(1)
im Unterverzeichnis
installiert, vergessen Sie also nicht, diese Zeile in der Datei `rules'
auszukommentieren, wenn Sie das benutzen.
Wenn Sie das nicht benötigen, löschen Sie die Datei.
Wenn Ihr Paket einen Daemonen enthält, der zum System-Boot gestartet werden muss, haben Sie die anfänglichen Empfehlungen offensichtlich missachtet, stimmts? :-)
Es ist wirklich ein sehr allgemeines Grundgrüst für ein Skript, das in
/etc/init.d/
installiert werden soll, es hat reichlich
Anpassungsbedarf. Es wird durch dh_installinit(1)
in das
Unterverzeichnis installiert.
Wenn Sie das nicht benötigen, löschen Sie die Datei.
Ihr Programm sollte eine Manpage haben. Hat es keine, dann können Sie die erstellte Vorlage umbenennen und mit dem eigenen Text füllen.
Manual Seiten werden üblicherweise in nroff(1)
geschrieben. Das
Beispiel manpage.1.ex ist auch in nroff geschrieben. In den
Manpages von man(7)
finden Sie weitere Hinweise zur Erstellung von
Man-Seiten.
Wenn Sie es andererseits bevorzugen in SGML anstatt nroff zu schreiben, können Sie die Datei `manpage.sgml.ex' benutzen. Dann müssen Sie Folgendes tun:
docbook-to-man
,
Vergessen Sie nicht, die Datei in `gentoo.sgml' umzubenennen!
Die endgültige Manpage-Datei sollte den Namen des Programms, das dokumentiert wird, erhalten. Deshalb ändern Sie den Namen von "manpage" nach "gentoo". Die Datei muss auch eine ".1" als erste Endung erhalten, d.h. es handelt sich um eine Manpage für ein Nutzer-Komando. Stellen Sie sicher, dass Sie die richtige Kategorie gewählt haben. Hier ist eine kurze Liste der Kategorien:
Sektion | Beschreibung | Anmerkungen 1 Benutzerkomandos Ausführbare Programme oder Skripte 2 Systemaufrufe Kernelfunktionen 3 Bibliotheksaufrufe Funktionen in System-Bibliotheken 4 Spezielle Dateien gewöhnlich in /dev 5 Dateiformate und Konventionen z.B. das Format von /etc/passwd 6 Spiele und ähnliche Programme 7 Makropakete und Konventionen z.B. man(7), groff(7) 8 Systemadministrations- befehle in der Regel nur für root 9 Kernelroutinen [Nicht Standard]
Also bekommt unsere Manpage den Dateinamen `gentoo.1'. Für X Programme können Sie noch ein "x" anhängen, z.B. `gentoo.1x'. Im gentoo-Archiv gab es keine Manpage `gentoo.1', also hat der Autor eine geschrieben, mit Hilfe der Informationen aus dem Beispiel und aus der Dokumentation des Upstreams.
Benutzer von "X Window System" haben normalerweise einen
Fenstermanager mit konfigurierbaren Menüs, aus dem die Programme gestartet
werden. Wenn Sie das Debian-Paket menu
installiert haben, wird
eine Reihe Menü-Einträge für die installierten Programme automatisch
hinzugefügt.
Standardmäßig erstellt dh_make
die Datei menu
so:
?package(gentoo):needs=X11|text|vc|wm section=Apps/see-menu-manual\ title="gentoo" command="/usr/bin/gentoo"
Das erste Feld nach dem Doppelpunkt ist "needs" und bestimmt, welche Art der Benutzerschnittstelle das Programm braucht. Lassen Sie nur die zutreffende Option stehen, z.B. "text" oder "X11".
Das nächste ist "section", in welchem Menü und Untermenü der Eintrag
später erscheinen soll. Die aktuelle Liste der Sektionen ist in:
/usr/share/doc/debian-policy/menu-policy.html/ch2.html#s2.1
zu
finden.
Das Feld "title" enthält den Namen des Programms. Der kann mit Großbuchstaben beginnen, sollte aber kurz gehalten werden.
Zuletzt das Feld "command", das den Kommandoaufruf zum Starten des Programms enthält.
Den Menü-Eintrag verändern wir also zum folgenden:
?package(gentoo): needs=X11 section=Apps/Tools title="Gentoo"\ command="gentoo"
Sie können noch weiter Felder wie "longtitle", "icon",
"hints" usw. hinzufügen. Siehe menufile(5)
,
update-menus(1)
und
/usr/share/doc/debian-policy/menu-policy.html/
für mehr Infos.
Mit dieser Datei können Sie uscan(1)
- und
uupdate(1)
-Programme (aus dem Paket devscripts
)
konfigurieren. Diese sind nützlich, um die Seite zu überwachen, von der Sie
die Original-Quellen bezogen haben.
Folgendes könnten Sie da eintragen:
# watch control file for uscan # Site Directory Pattern Version Script ftp.obsession.se /gentoo gentoo-(.*)\.tar\.gz debian uupdate
Hinweis: Wechseln Sie, wenn Sie die Datei einmal erstellt haben, mit einer bestehenden Internetverbindung in das Arbeitsverzeichnis und probieren Sie, "uscan" auszuführen. Und RTFM. :)
Hat Ihr Programm noch andere Dokumentationen, nicht nur Man- und Info-Seiten,
so sollten Sie die Datei `doc-base
' benutzen, um diese zu
registrieren, damit der Benutzer sie mit Programmen wie dhelp(1)
,
dwww(1)
oder doccentral(1)
finden kann.
Das schließt normalerweise HTML-, PS- und PDF-Dateien ein, die sich in
/usr/share/doc/packagename/
befinden.
So könnte Gentoo's Datei `gentoo.doc-base' dann aussehen:
Document: gentoo Title: Gentoo Manual Author: Emil Brink Abstract: This manual describes what Gentoo is, and how it can be used. Section: Apps/Tools Format: HTML Index: /usr/share/doc/gentoo/html/index.html Files: /usr/share/doc/gentoo/html/*.html
Informationen über das Format dieser Datei finden Sie in
install-docs(8)
und der Anleitung von doc-base
in
/usr/share/doc/doc-base/doc-base.html/
.
Diese Dateien werden Maintainer-Skripte gennant. Das sind Skripte die im
Kontrol-Bereich des Pakets liegen und von dpkg
ausgeführt werden,
und zwar, wenn Ihr Paket installiert, aktualisiert oder entfernt wird.
Vorerst sollten Sie aber von den Maintainer-Skripten die Finger lassen, weil
die manuelle Bearbeitung schnell kompliziert werden kann. Mehr Informationen
finden Sie in der Policy, Kapitel 6, und werfen Sie einen Blick auf die
Beispiele von dh_make
.
Anleitung für zukünftige Debian-Maintainer
Version 1.2, 06. April 2002.joy-mg@debian.org
mail@erikschanze.de
blade@debian.org