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

Debian-Quellpaket verändern

Das nächste Beispiel zeigt, wie Sie die "hello"-Version von Debian 8.2 ("hello-2.9") auf das aktuellste Release 2.10 aktualisieren. Anstelle dieses neu aus den Quellen zu bauen, nutzen Sie den Helfer "uupdate" aus dem Paket "devscripts", um ein schnelles Update der paketierten Programmversion durchzuführen. Dazu laden Sie die aktuelle Programmversion als Upstream-Quelle von den FTP-Servern des GNU-Projekts herunter:

$ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz

Danach spielen Sie (falls noch nicht vorhanden) die Quellen der Version ein, die der Distribution beiliegen:

$ apt-get source hello

Wechseln Sie ins neu entstandene Verzeichnis "hello-2.9". Jetzt kommt das Werkzeug "uupdate" zum Einsatz, das Sie zusammen mit dem Namen der neuen Quellen aufrufen; zusätzlich geben Sie hinter "-v" die neue Versionsnummer an (Listing 3). Dem Vorschlag "cd ../hello-2.10" folgen Sie und rufen im neuen Verzeichnis noch einmal "dch" auf, um das Changelog zu bearbeiten ("dch --local hej"). Die Datei enthält bereits einen neuen Eintrag mit dem Namen und der Versionsnummer sowie dem Zusatz "New upstream release". Fügen Sie nun noch Ihre Änderungen hinzu (Listing 4).

 Listing 3: Ein Paket aktualisieren

 hello-2.9$ uupdate ../hello-2.10.tar.gz -v 2.10 
  New Release will be 2.10-1. 
  Symlinking to pristine source from hello_2.10.orig.tar.gz... 
  -- Untarring the new sourcecode archive ../hello-2.10.tar.gz 
  Unpacking the debian/ directory from version 2.9-2+deb8u1 worked fine. 
  Remember: Your current directory is the OLD sourcearchive! 
  Do a "cd ../hello-2.10" to see the new package 

 Listing 4: Änderungen dokumentieren

 hello (2.10-1hej1) unstable; urgency=medium 
 
           * New upstream release 
         * Just a test for the article. 
 
     -- Heike Jurzik   < jurzik@guug.de >   Sun, 21 Feb 2016   17:38:06   +0100 
 […] 

Im Ordner "debian", den "uupdate" von der Vorgängerversion kopiert hat, liegt ein Verzeichnis namens "patches" mit Änderungen, die oft nicht mehr funktionieren und auch nicht mehr nötig sind. Entfernen Sie den Ordner "patches" daher. Kapitel 8.3 des Handbuchs Debian New Maintainers' Guide [5] beschreibt ausführlich, wie Sie Patches aktualisieren und entfernen. Abschließend führen Sie wieder das Kommando zum Paketbauen aus (Listing 5).

Manchmal haben neue Programmversionen andere Abhängigkeiten, und das schnelle Update klappt nicht so ohne Weiteres wie in diesem Beispiel. Über Fehlermeldungen beim Kompilieren erhalten Sie dann meist Hinweise, was fehlt. Oft hilft es, diese in eine Suchmaschine der Wahl einzugeben, denn andere Nutzer sind oft auf das gleiche Problem gestoßen. Alternativ nehmen Sie das Kommando "apt-file search" zur Hilfe, um gezielt nach Dateien in Paketen zu suchen.

 Listing 5: Paket neu bauen

 $ dpkg-buildpackage -us -uc 
 […] 
 dpkg-deb: Paket »hello« wird in »../hello_2.10-1hej1_amd64.deb« gebaut.

Paket aus Upstream-Quelle bauen

Manchmal ist ein Programm nicht für Debian oder Ubuntu paketiert und es stehen lediglich die Quellen der Originalautoren zur Verfügung. Aus solchen Upstream-Quellen (in der Regel TAR.GZ- Archive) können Sie mit Debian-Bordmitteln Pakete bauen. Als Fingerübung dient erneut das Programm "hello"; allerdings kommt diesmal die Version 2.7 zum Einsatz, da 2.9 und 2.10 einen Fehler enthalten, bei dem das Kompilieren nicht richtig angestoßen wird. Laden Sie die Quellen vom FTP-Server des Projekts [6] herunter, entpacken Sie den Tarball und wechseln Sie ins neu entstandene Verzeichnis "hello-2.7" hinein.

Arbeiten Sie nun mit dem Tool "dh_make" weiter, das den Quellcode so umwandelt, dass er den Debian-Richtlinien entspricht. Das Werkzeug erzeugt unter anderem das Unterverzeichnis "debian" (siehe nächster Abschnitt) und nutzt die Einstellungen aus den Umgebungsvariablen "DEBFULLNAME" und "DEB-EMAIL". Beim Aufruf geben Sie hinter dem Schalter "-f" den Namen des Quellcodearchivs an (Bild 6). Das Tool legt eine Kopie des ursprünglichen Tarballs mit der Endung ".orig.tar.gz" an, damit zu einem späteren Zeitpunkt ein nicht-natives Debian-Quellpaket mit der Endung "debian.tar.gz" möglich ist.

Das Programm fragt nun ein paar Informationen ab. Zuerst entscheiden Sie, ob Sie ein einzelnes Binärpaket ("s"), ein architekturunabhängiges Paket ("i"), mehrere Binarys ("m"), eine Bibliothek ("l"), ein Kernelmodul ("k") oder einen Kernelpatch ("n") erzeugen wollen. Beim Beispielprogramm "hello" handelt es sich um ein einzelnes Binärpaket; geben Sie also "s", gefolgt von [Eingabe] ein. In der Ausgabe sehen Sie nun einige Informationen zum Ersteller, das Datum, den Paketnamen und so weiter. (Bild 6).

Bild 6: Mit dem Helfer "dh_make" erzeugen Sie das Unterverzeichnis "debian" und die darin enthaltenen Dateien.

Wie Sie in Bild 6 erkennen können, ist das Feld "License" leer. Sie können die Lizenz bereits beim Aufruf bestimmen oder später die Datei "copyright" im neuen Verzeichnis "debian" von Hand anpassen (siehe nächster Abschnitt). Um die Lizenz schon mit "dh_make" zu setzen, geben Sie hinter dem Parameter "-c" den Namen an, zum Beispiel "gpl", "gpl2", "gpl3", "lgpl", "lgpl2" "lgpl3", "artistic", "apache", "bsd" oder "mit". Ebenso können Sie beim Aufruf die Paketklasse festlegen: "-s" (single), "-i" (independant), "-m" (multiple), "-l" (library), "-k" (kernel module) und "-n" (kernel patch).

Ä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