Open Source im professionellen Einsatz
Linux-Magazin 02/2016
© chuyu, 123RF

© chuyu, 123RF

Dgit: Debian-Archiv wie Git verwalten

Neue Wege

Dgit verbindet als Zwei-Wege-Gateway das Debian-Archiv mit einem Git-Repository. Das beschert Paketbetreuern ganz neue Möglichkeiten der Softwareverwaltung, verbessert aber auch den allgemeinen Umgang mit Debian-Quellpaketen und dem Archiv.

629

Versionsverwaltungen sind ein Grundbaustein ambitionierter Software-Entwicklung und kommen vor allem beim kooperativen Entwickeln von Systemen zum Zuge. Viele Programmierer benutzen das vom Linux-Vater Torvalds geschriebene Git [1], mit dem beispielsweise die Kernelentwickler arbeiten. Aber nicht nur die.

Gits Stärke, Revisionen zu verwalten und flexibel Code zu tauschen, machen sich auch Debian-Entwickler zunutze. Das Projekt greift auf verschiedene Weisen auf Git zu. Das bislang noch experimentelle Dpkg-Source-Format 3.0 (git) [2] benutzt zum Beispiel Git-Technik, um einige Schwächen des aktuellen Deb-Src-Standards zu beheben [3].

Hauptsächlich sorgt Git in Debian zurzeit aber für die gemeinschaftliche Paketpflege in einzelnen Entwicklergruppen. So verteilt es zum Beispiel in Debian Science Änderungen unter den Mitgliedern. Meistens kommen dabei die Werkzeuge »git-buildpackage« [4] und »git-dpm« [5] zum Einsatz.

Dgit

Dgit (Abbildung 1, [6]) verfolgt hingegen einen etwas anderen Ansatz: Es dockt für die Arbeit an den Paketquellen direkt an die Debian-Infrastruktur an. Das Tool von Ian Jackson liegt aktuell in Version 1.4 vor. Es handelt sich dabei um ein Zwei-Wege-Gateway, das Debians Archiv in Git überführt und umgekehrt [7]. Das ermöglicht es dem Benutzer, beliebige Quellpakete aus dem Archiv in ein lokales Git-Repository zu laden, anschließend Git-basiert daran zu arbeiten und schließlich die Binärpakete aus dieser Umgebung heraus zu bauen.

Abbildung 1: Das Dgit-Repository. Aktuell ist die Version 1.4.

Paketbetreuer spielen ihre Änderungen darüber hinaus mit Dgit auch wieder ins Debian-Archiv ein. Diese Technik bietet viele neue Möglichkeiten für die Paketpflege, aber auch generell für den Umgang mit dem Debian-Archiv und den darin enthaltenen Quellpaketen.

Tabelle 1

Paketpflege-Workflow mit Dgit

Befehl

Kommentar

dgit clone Projekt

Ein beliebiges Paket aus dem Archiv ziehen

cd Projekt/

In das Quellverzeichnis wechseln

git branch

Aktuellen Git-Zweig überprüfen, Ergebnis: »* dgit/sid«

git remote add upstream https://github.com/alexandervdm/Projekt

Upstream-Repository als zusätzlichen Remote einrichten

dch -i

Paketversion in »debian/changelog« erhöhen (Paket: »devscripts« )

Quellpaket weiterentwickeln

debcommit -a -e

Commit mit dem letzten Changelog-Eintrag als Message

git status

Auf übersehene Dateien hin überprüfen

sudo sbuild-createchroot unstable /var/lib/sbuild/unstable-amd64 http://httpredir.debian.org/debian/

Sbuild-Chroot einrichten (Architektur ist gegebenenfalls anzupassen)

dgit -wdd --mergechanges:-i sbuild

Neues Quell- und Binärpaket mit Sbuild bauen

lintian -iI --color=auto ../projekt_0.6.5-7_amd64.changes

Gebaute Pakete auf Mängel überprüfen (Paket: »lintian« )

sudo dpkg --install ../projekt_0.6.5-7_amd64.deb

Binärpaket installieren

dgit push

Neues Paket ins Archiv hochladen, aktuellen Commit taggen und mit Dgit-Repository abgleichen

Klonen

Entwickler installieren Dgit als CLI-Tool. Ein »dgit clone Paketname« zieht dann jedes beliebige Quellpaket aus dem Debian-Archiv (Abbildung 2, [8]). Im Arbeitsverzeichnis landet dann neben dem aktuellen Upstream-Tarball das ausgepackte Quellverzeichnis mit dem Unterordner »debian/« . Der Schritt entspricht dem Aufruf von »apt-get source Paketname« , wobei der Admin hier keine »deb-src« -Paketquelle in der Datei »/etc/apt/sources.list« angeben muss. Nach dem Download mit Dgit fehlen zwar die Registerdatei (».dsc« ) und der Tarball mit den Debian-Dateien (».debian.tar.xz« ), aber das Auspacken des Quellpakets mit »dpkg-source -x« erübrigt sich.

Abbildung 2: Über einen Clone-Befehl lassen sich beliebige Quellpakete aus dem Debian-Archiv ziehen.

Das Quellverzeichnis steht nun schon unter der Kontrolle von Git, was der Debianer mit »git status« nachprüft. Ob jemand das Paket bereits mit Dgit bearbeitet hat oder nicht, verrät der Befehl »git log« .Wenn nicht, erscheint nur ein Commit mit dem Hinweis, das Paket sei aus dem Archiv importiert worden.

Gibt der Nutzer keinen bestimmten Debian-Zweig an (über »dgit Paketname Zweig« ), holt Debian das Quellpaket aus der Entwicklungsversion Unstable. Das lässt sich am Namen des aktuellen Git-Zweiges mit »git branch« überprüfen, im genannten Fall steht dort »dgit/sid« .

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Dgit 1.0: Git für Debianer

    Ian Jackson hat Dgit 1.0 veröffentlicht, ein Tool, mit dem sich Debian-Archive wie Git-Repositorys behandeln lassen.

  • Dgit: Github setzt auf neue Architektur

    Mit Dgit (nicht zu verwechseln mit dem gleichnamigen Debian-Projekt) setzt Github seine neue Serverarchitektur um. Die basiert auf einem verteilten System, das Git selbst verwendet. Github verspricht sich davon einige Vorteile, die es in einem Blogeintrag erläutert.

comments powered by Disqus

Ausgabe 08/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.