Die Zusammenarbeit im Unternehmen wird immer dynamischer und flexibler. Aus diesem Grund wirft IT-Administrator in der April-Ausgabe einen Blick auf die ... (mehr)

Das Grundgerüst

"dh_make" hat das neue Verzeichnis "debian" erstellt und dort die notwendigen Steuerungsdateien hinterlegt. Wechseln Sie in den neuen Ordner hinein. Neben dem Unterverzeichnis "source", das die Datei "format" mit der Definition für das Paketformat enthält (Voreinstellung ist "3.0 (quilt)"), liegen hier einige neue Dateien. Die mit der Endung ".ex" beziehungsweise ".EX" können Sie löschen. Nur wenn Sie Notizen zum Paket oder zu Ihren Veränderungen hinterlegen möchten, tragen Sie diese mit einem Text-editor in die Datei "README.Debian" ein. Die Datei landet später im Verzeichnis "/usr/share/doc/PAKET/README.Debian.gz"; ansonsten können Sie sie ebenfalls entfernen. Gleiches gilt für"README.source" und die beiden Files "info" und "docs". Für das "hello"-Beispiel befinden sich jetzt noch die folgenden Komponenten im Ordner "debian":

-rw-rw-r-- changelog
-rw-rw-r-- compat
-rw-rw-r-- control
-rw-rw-r-- copyright
-rwxr-xr-x rules
drwxr-xr-x source

Tipp: Falls Sie zu gründlich aufgeräumt haben, stellen Sie über "dh_make --addmissing" versehentlich gelöschte Templates wieder her.

In der Datei "changelog" notieren Sie die Änderungen und Unterschiede zwischen den einzelnen Paketversionen, falls Sie die Software verändert haben. Die korrekte Syntax hat "dh_make" bereits berücksichtigt, und Sie müssen im Texteditor nur noch ein paar Anpassungen vornehmen. Das Ganze sieht ähnlich aus wie in Bild 4. In der ersten Zeile finden Sie Angaben zum Paketnamen, zur Versionsnummer, zur Distribution und zur Dringlichkeit. Die restlichen Zeilen protokollieren die Änderungen, die Sie vorgenommen haben. Um auf Nummer sicher zu gehen, können Sie wiederum den Helfer "dch" einsetzen, der vor dem Speichern die Syntax überprüft (siehe Abschnitt "Debian-Quellpaket verändern").

In der Datei "compat" ist die zugehörige Debhelper-Version definiert. Bei Redaktionsschluss war das unter Debian und Ubuntu jeweils die 9. Die Datei "copyright" enthält Informationen über das Copyright und die Lizenz der Quellen der Originalautoren. Auch der Aufbau dieses Files ist genau festgelegt [7], und "dh_make" hat ein Grundgerüst erstellt, das Sie im Texteditor anpassen können. Zur Erinnerung: Der Parameter "-c" definiert, wie die "copyright"-Vorlage aussieht und wählt die richtige Lizenz. Tragen Sie die URL des Quellpakets, das Entstehungsjahr und den Namen des ursprünglichen Autors ein.

Kontrolle und Regeln

In der Datei "control" stehen Angaben, welche die Paketverwaltungs-Werkzeuge dpkg, APT, Aptitude und Co. benötigen (siehe Abschnitt "Anatomie der Pakete"). Das Debian Policy Manual beschreibt in Kapitel 5 den korrekten Aufbau [8]. Das Grundgerüst, das "dh_make" erzeugt hat, passen Sie wieder im Texteditor an und fügen mindestens in die mit spitzen Klammern markierten Felder passenden Text ein. Bei der kurzen und langen Beschreibung hinter "Description" können Sie sich Inspiration von der Programmhomepage holen.

Die von "dh_make" erzeugte "control"-Datei setzt im Abschnitt "Depends" die beiden Variablen "${shlibs:Depends}" und "${misc:Depends}". Das sind automatisch errechnete Abhängigkeiten, unter anderem Shared Libraries. Hier müssen Sie in der Regel nichts verändern, können aber weitere Pakete eintragen. Auch "Build-Depends" (Bauabhängigkeiten) enthält Werte, die Sie übernehmen können.

Beachten Sie, dass zwischen den Zeilen "Homepage" und "Package" eine Leerzeile steht, dass die lange Beschreibung jeweils ein Zeichen eingerückt ist und dass ein Punkt eine Leerzeile markiert. Bild 7 zeigt die fertig ausgefüllte "control"-Datei für das Testpaket.

Bild 7: Die Datei "control" enthält Steuerinformationen für das Paket.

Bei der ausführbaren Datei "rules" handelt es sich um ein Makefile, das die Regeln auflistet, die das Tool "dpkg-buildpackage" verwendet, um das Paket zu bauen. Normalerweise sind hier keine Anpassungen nötig. Aktuelle Versionen von "dh_make" erzeugen eine Datei, die als einziges Ziel ein beliebiges Wildcard-Target ("%:") enthält, das "dh" aufruft. Dieses Hilfskript arbeitet nacheinander jede Menge "dh_"-Programme ab, die im Bauverzeichnis aufräumen ("clean"), die Quellen kompilieren ("build"), die Dateien in einen Verzeichnisbaum unterhalb des Ordners "debian" installieren ("install") und das Paket bauen ("binary").

Wenn Sie sich dafür interessieren, was hinter den Kulissen passiert und welche "dh_"-Befehle ausgeführt werden, dann entfernen Sie das Kommentarzeichen vor "export DH_VERBOSE = 1". Kapitel 4 des New Maintainers' Guide [5] beschreibt ebenfalls ausführlich, welche Hilfsskripte zum Einsatz kommen.

Benötigt ein Paket besondere Anweisungen, beispielsweise eine "configure"-Option, können Sie in der "rules"-Datei ein "override_dh_"-Ziel definieren. In der Zeile darunter folgt (durch einen Tabulator eingerückt) die Anweisung "dh_auto_configure", zwei Bindestriche und die neuen Argumente. Es ist wichtig, dass es sich um ein echtes Tab-Zeichen handelt und nicht einfach acht Leerzeichen – wenn Sie etwas per Copy & Paste aus einer anderen Datei übertragen, achten Sie unbedingt darauf; sonst hagelt es Fehlermeldungen.

Die Configure-Option "--disable-nls" deaktiviert den Native Language Support:

override_dh_auto_configure:
dh_auto_configure -- --disable-nls

Nach dem Bauen ( »dpkg-buildpackage -us -uc« ) und Installieren des Pakets spricht "hello" nun keine Fremdsprachen mehr.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023