Vorwort
Für eine Maschine verantwortlich zu sein bedeutet, die Hardware sowie die Softwarekomponenten zu betreuen. Wie im täglichen Leben als Systemadministrator zu sehen ist, ist es viel besser, Software als Softwarepaket zu installieren als eine Reihe von Quelldateien. Dies senkt die Kosten, um das System ordnungsgemäß aufrechtzuerhalten.
Pakete, die bei Ihrem bevorzugten Händler erhältlich sind. Er testete die Software und versichert, dass sie zu den anderen in der Distribution verfügbaren Softwarepakete passt. Darüber hinaus ist das Paket mit einem GPG -Schlüssel aus dem Packungsbetrieb signiert. Dies garantiert die Integrität des Pakets und zeigt Ihnen, dass das Paket von einer vertrauenswürdigen Quelle stammt.
Das Paketformat hängt von Ihrer Linux -Verteilung ab. Ausgewählte Formate sind die folgenden:
Deb
Pakete verwendet in: Debian GNU/Linux, Ubuntu, Armbian, Linux Mint, Knoppix
Drehzahl
Pakete verwendet in: Redhat, Fedora, CentOS, openSuse
TGZ und TXZ
Pakete verwendet in: Slackware
Teer.xz
Pakete verwendet in: Arch Linux
In diesem Dokument wird erläutert, wie ein Paket für Debian GNU/Linux kurz erstellt wird. Ausführliche Informationen zum Debian -Paketformat und zu den Tools zur Aufrechterhaltung eines "DEB" -Basierten Linux -Systems finden Sie möglicherweise im Debian -Paketverwaltungsbuch [DPMB], um Pakete für Debian GNU/Linux zu erstellen. Diese Dokumente sind unerlässlich:
Das Paket, mit dem wir arbeiten werden, heißt "HelloWorld" und hat die Versionsnummer 0.1. Für Demonstrationszwecke enthält es einfach ein einzelnes Python -Skript, das die berühmte Botschaft „Hallo, Welt“ ausgibt!”:
#!/usr/bin/pythonAnforderungen
Lassen Sie Ihren GPG -Schlüssel als Schritt 1 verfügbar. Später wird der Schlüssel benötigt, um das Paket zu unterschreiben. Denken Sie daran, dass unsignierte Pakete nicht vertrauenswürdig sind und nicht Teil des Debian -Universums sein können.
Falls Sie keinen GPG -Schlüssel haben und noch einen erstellen, erstellen Sie einen. Sie können die drei folgenden Schritte folgen. Der erste Befehl generiert einen neuen Schlüssel, der zweite exportiert Ihren neuen Schlüssel in eine separate Datei, und der dritte fügt den Schlüssel zu Ihrem persönlichen Keyring hinzu.
$ gpg-generStellen Sie während der Erstellung sicher, dass der angegebene Name Ihr Name_ korrekt ist. Es ist üblich, eine Kombination aus Vorname und Nachname zu verwenden. Dieser Name muss im Paket genau gleich sein, und beim Erstellen der "Steuer" -Datei des Debian -Pakets. Weitere Informationen zu GPG finden Sie im GNU Privacy Handbook [GPH].
So erstellen Sie ein Debian -Paket mit Quellcode, die folgenden Softwarepakete sind in Ihrem System erforderlich:
Als Benutzer "Root" können Sie diese mit dem folgenden Befehl installieren:
# APT-GET Installieren Sie Build-Escial Autoconf Automake Autotools-dev dh-Make Debhelper DevScripts Fakeroot Xutils Lintian PbuilderWir müssen ein Verzeichnis vorbereiten, um das Paket zu erstellen. Erstellen Sie ein Verzeichnis, um die Umgebung vorzubereiten, in der wir das Paket erstellen:
$ mkdir -p ~./bauen/helloWorld/0.1Kopieren Sie den Teer.GZ 'komprimiertes Archiv im Verzeichnis:
$ CP HelloWorld-0.1.Teer.gz ~./bauen/helloWorld/0.1Wechseln Sie in das Verzeichnis und extrahieren Sie das Paket:
$ cd ~./bauen/helloWorld/0.1Jetzt enthält das Verzeichnis sowohl den Quellcode in einem separaten Verzeichnis als auch das komprimierte Archiv:
~/build/helloWorld/0.1 $ lsDebianisierung
Zu diesem Zeitpunkt werden wir die Dateien hinzufügen, die für ein Debian -Paket spezifisch sind. Deshalb heißt dieser Schritt _debianization_ der Software. Dies geschieht in mehreren einzelnen Schritten.
Wechseln Sie in das Verzeichnis, das den gesamten Quellcode des Pakets aufbewahrt. In unserem Beispiel enthält das Paket die Datei 'HelloWorld.Py ', nur:
~ $ cd build/helloWorld/0.1/helloWorld-0.1Fügen wir die Dateien hinzu, die für ein Debian -Paket spezifisch sind. Das Werkzeug 'DH_MAKE' kommt ins Spiel. Der Switch '-e' verwendet die angegebene Adresse als E-Mail-Adresse im Feld "Wartung" der Datei "Debian/Control". Erstellen des Pakets Verwenden Sie stattdessen Ihre eigene E -Mail -Adresse. Denken Sie daran, dieselbe E -Mail -Adresse zu verwenden, die Ihrem GPG -Schlüssel entspricht.
Der Switch '-F' verwendet die angegebene Datei als ursprüngliches Quellarchiv und überspringt das Kopieren des aktuellen Programmbaums in das Programm.orig '.
~/build/helloWorld/0.1/helloWorld-0.1 $ DH_MAKE -E [email protected] -f… /helloWorld -0.1.Teer.gzAuf der Eingabeaufforderung werden Sie aufgefordert, die Art des Pakets auszuwählen, der erstellt werden sollte. Um _Single binary_ Typ 's' zu wählen.
Pakettyp: Single Binärer, unabhängiges Binärer, Multipler Binärer, Bibliothek, Kernelmodul, Kernel Patch?Dies führt zu einem Verzeichnis namens "Debian":
~/build/helloWorld/0.1/helloWorld-0.1 $ lsDieses Verzeichnis enthält alle paketspezifischen Dateien.
Die Datei 'Debian/Control' hält die Abhängigkeiten, die benötigt werden, das Paket zu erstellen. Verwenden des Befehls 'dpkg -Depcheck -d ./Konfigurieren Sie 'Sie erhalten eine Liste mit allen erforderlichen Paketen. In unserem Fall ist kein weiteres Paket erforderlich, da Python eine interpretierte Sprache ist.
Als nächstes müssen wir die Datei 'Debian/Control' bearbeiten und paketspezifische Werte hinzufügen. Für unser Beispiel sieht es wie folgt aus:
Quelle: HelloWorldDie Datei 'Debian/Copyright' enthält die Lizenzinformationen für das Softwarepaket. Es ist für die Freigabe über GNU Public Lizenz 2 (GPLV2) vorbereitet. Für unser Beispiel sieht es wie folgt aus:
Format: http: // www.Debian.org/doc/packaging-Manuelle/Copyright-format/1.0/Nach den Copyright -Informationen muss die Datei 'Debian/Changelog' angepasst werden. In unserem Beispiel fügen wir die Informationen "Erstveröffentlichung" hinzu.
HelloWorld (0.1-1) instabil; Dringlichkeit = niedrigDas ist alles, was wir bisher brauchen - jetzt können wir das Paket endlich erstellen.
Erstellen Sie das Paket
Um das Paket zu erstellen, müssen wir ein Verzeichnis nach oben verschieben und den folgenden Befehl ausführen:
~/build/helloWorld/0.1/helloWorld-0.1 $ dpkg -buildpackage -rfakerootMit der Option '-rfakeroot' kann 'DPKG-buildpackage' Befehle als priviledierter Benutzer mit Hilfe des Befehls 'Fakeroot' ausführen. Dies ist erforderlich, um das Paket vorzubereiten und Dateien und Verzeichnisse zu erstellen.
Der obige Befehl führt zu einer längeren Liste von Ausgabenachrichten (hier in einer deutschen Sprachumgebung gezeigt):
Herzlichen Glückwunsch - Sie haben es geschafft, ein Debian -Paket aufzubauen - ja! Schauen wir uns nun das Paket genauer an. Hier kommt 'Lintian' ins Spiel. Dieses Tool bestätigt Ihr Paket, um Verstöße gegen die strengen Regeln zu finden, die Debian -Pakete erfüllen müssen.
So führen Sie den Testtyp im folgenden Befehl aus:
Lintian HelloWorld_0.1-1_amd64.DebDas Tool findet keine Verstöße gegen Regel, sondern auch Rechtschreibfehler und falsche Zeichen. Der Switch '-Pedantantic' bittet 'Lintian', viel kritischer als gewöhnlich zu sein. Wie Sie unten sehen können, ist 'Lintian' ein bisschen mürrisch und hat drei Warnungen und einen Fehler entdeckt.
Mit Ausnahme der ersten Warnung können wir leicht "Lintian" glücklich machen und den Paketinhalt gemäß dem Regelsatz einstellen. Die Warnung 'New-Package SOORD-CLOSE-ITP-BUG' bedeutet, dass es keinen Fehlerbericht gegen das ITP-Paket gibt (ITP bedeutet _Ented to Package_). Für ein reguläres Debian -Paket muss ein Fehlerbericht an den Bugtracker gesendet werden, um ITP zu paketen, um andere zu benachrichtigen, dass Sie beabsichtigen, diese Software zu verpacken.
Die Datei 'Readme.Debian 'soll zusätzliche Notizen zu diesem Paket aufbewahren. 'dh_make' erstellt diese Datei für uns:
HelloWorld für DebianIn unserem Beispiel haben wir keine zusätzlichen Informationen, damit wir die Datei löschen können.
Diese Warnung wird erhöht, da die längere Beschreibung unseres Pakets in der Datei 'Debian/Control' mit mehr als einem einzigen Raum beginnt. Sobald wir einen einzigen Raum entfernen, wird die Warnung verschwinden.
Jedes Paket erfordert sowohl eine kurze als auch eine längere Beschreibung in 'Debian/Control'. Dieser Fehler wird angesprochen, weil beide Beschreibungen identisch sind. Sobald wir die längere Beschreibung erweitert haben, ist der Fehler verschwunden.
Links und Referenzen
- [DDR] Andreas Barth, Adam di Carlo, Raphaël Hertzog, Lucas Nussbaum, Christian Schwarz, Ian Jackson: The Debian Developer's Referenz
- [DNMG] Josip Rodin, Osamu Aoki: The Debian New Warding's Guide
- [DPMB] Axel Beckert, Frank Hofmann: Das Debian -Paketmanagementbuch
- [DPM] Das Debian -Richtlinienhandbuch
- [DPT] Das Tutorial Debian Packaging
- [GPH] Das GNU Privacy Handbook
- [Lushpaipackage] Alex Lushpai: So erstellen Sie das Debian -Paket aus der Quelle
Anerkennung
Der Autor bedankt sich bei Axel Beckert und Gerold Rupprecht für seine Unterstützung sowie Kritiker, während er diesen Artikel vorbereitet.