Verpacken mit Debhelper
Wichtig Bedarf: Die Anforderungen aus dem Abschnitt "Packaging From Scratch" plus debhelper und dh-make Als Packager werden Sie selten Pakete von Grund auf neu erstellen, wie wir es im vorherigen Abschnitt getan haben. Wie Sie sich vorstellen können, sind viele Aufgaben und Informationen in der Regeln Dateien sind beispielsweise in Paketen üblich. Um das Verpacken einfacher und effizienter zu gestalten, können Sie verwenden debhelper um bei diesen Aufgaben zu helfen. Debhelper ist ein Satz von Perl-Skripten (vorangestellt mit dh_), die den Prozess der Paketbildung automatisieren. Mit diesen Skripten wird das Erstellen eines Debian-Pakets recht einfach. In diesem Beispiel werden wir erneut das GNU-Hello-Paket erstellen, aber dieses Mal werden wir unsere Arbeit mit Ubuntu vergleichen hallo-debhelper Paket. Erstellen Sie erneut ein Verzeichnis, in dem Sie arbeiten werden: Dann holen Sie sich das Ubuntu-Quellpaket: Wie im vorherigen Beispiel müssen wir zunächst den ursprünglichen (Upstream-) Tarball auspacken. Anstatt das Upstream-Archiv zu kopieren hello_2.1.1.orig.tar.gz Wie wir im vorherigen Beispiel gemacht haben, werden wir es zulassen dh_make erledige die Arbeit für uns Das einzige, was Sie tun müssen, ist den Quellordner umzubenennen, so dass er in der Form von
Um die anfängliche "Debianisierung" der Quelle zu erstellen, verwenden wir sie dh_make. Dh_make stellt dir dann eine Reihe von Fragen: Vorsicht Nur laufen dh_make -e Einmal. Wenn Sie es nach dem ersten Mal erneut ausführen, funktioniert es nicht ordnungsgemäß. Wenn Sie es ändern oder einen Fehler machen möchten, entfernen Sie das Quellverzeichnis und entpacken Sie das Upstream-Archiv erneut. Dann können Sie in das Quellverzeichnis migrieren und es erneut versuchen. Laufen dh_make -e macht zwei Dinge: Das Hallo Das Programm ist nicht sehr kompliziert, und wie wir im Abschnitt "Packaging From Scratch" (Packen von Grund auf) gesehen haben, sind für das Verpacken nicht viel mehr als die Basisdateien erforderlich. Lassen Sie uns deshalb das entfernen .Ex Dateien: Zum Hallowirst du auch nicht * Lizenz * Ubuntu Packaging Guide Index brauchen README.Debian (README-Datei für bestimmte Debian-Probleme, nicht die README-Datei des Programms), dirs (benutzt von dh_installdirs benötigte Verzeichnisse erstellen), docs (benutzt von dh_installdocs Programmdokumentation installieren) oder Info (benutzt von dh_installinfo um die Infodateien zu installieren debian Verzeichnis. Weitere Informationen zu diesen Dateien finden Sie im Abschnitt "dh_make-Beispieldateien". An diesem Punkt sollten Sie nur haben Änderungsprotokoll, Compat, Steuerung, Urheberrechte ©, und Regeln Dateien in der debian Verzeichnis. Aus dem Abschnitt "Packaging From Scratch" ist die einzige Datei, die neu ist Compat, das ist eine Datei, die das enthält debhelper Version (in diesem Fall 4), die verwendet wird. Sie müssen das anpassen Änderungsprotokolletwas in diesem Fall, um anzuzeigen, dass dieses Paket benannt ist hallo-debhelper anstatt nur Hallo: Durch die Nutzung debhelper, das einzige, was wir ändern müssen Steuerung sind der Name (ersetzend Hallo zum hallo-debhelper) und Hinzufügen debhelper (> = 4.0.0) zum Build-Depends Feld für das Quellpaket. Das Ubuntu-Paket für hallo-debhelper sieht aus wie: Wir können das kopieren Urheberrechte © Datei und die postinst und prerm Skripte aus dem Ubuntu hallo-debhelper Paket, da sie seit dem Abschnitt "Packaging From Scratch" nicht geändert wurden. Wir werden auch die kopieren Regeln Datei, damit wir es inspizieren können. Die letzte Datei, die wir betrachten müssen, ist Regelnwo die Kraft von debhelper Skripte können gesehen werden. Das debhelper Version von Regeln ist etwas kleiner (54 Zeilen im Vergleich zu 72 Zeilen in der Version aus dem Abschnitt "Regeln"). Das debhelper Version sieht aus wie: touch build binary-indep: install # Es sind keine architekturunabhängigen Dateien vorhanden, die von diesem Paket # hochgeladen werden sollen. Wenn es welche gäbe, würden sie hier gemacht. binary-arch: install dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_md5sums -a dh_md5sums -a dh_md5sums arch .PHONY: binäres binäres Archiv, binär-unabhängige Clean Checkroot Beachten Sie, dass Aufgaben wie das Testen, wenn Sie sich im richtigen Verzeichnis befinden (dh_testdir), stellen Sie sicher, dass Sie das Paket mit Root-Berechtigungen erstellen (dh_testroot), Dokumentation installieren (dh_installdocs und dh_installchangelogs) und nach dem Build aufräumen (dh_clean) werden automatisch behandelt. Viele Pakete viel komplizierter als Hallo haben Regeln Dateien nicht größer, weil die debhelper Skripts erledigen die meisten Aufgaben. Für eine vollständige Liste von debhelper Skripte finden Sie im Abschnitt "Liste von debhelper Skripte ". Sie sind auch in ihren jeweiligen dokumentiert Mann Seiten. Es ist eine nützliche Übung, die Manpage für jedes Helfer-Skript zu lesen, das in diesem Dokument verwendet wird Regeln Datei.