Zum Hauptinhalt Zur Navigation

Linux-Distributionen: Ein Puzzlespiel mit Tausenden Teilen

Das Zusammenstellen einer Linux-Distribution ist ein sehr komplexes Unterfangen. Über die Vorgehensweise und die Probleme bei Opensuse hat Golem.de mit Release-Manager Stephan Kulow und Open-Build-Service-Entwickler Hendrik Vogelsang gesprochen.
/ Sebastian Grüner
6 Kommentare News folgen (öffnet im neuen Fenster)
Das Entwicklungsschema von Opensuse-Factory (Bild: Opensuse)
Das Entwicklungsschema von Opensuse-Factory Bild: Opensuse

Bei technischen Fragen bei der Entwicklung von Opensuse hat Stephan Kulow das letzte Wort. Der Release-Manager ist für die Veröffentlichungen von neuen Versionen verantwortlich und betreut den Entwicklungszweig Factory. "Integration-Engineer" nennt er sich selbst. Golem.de hat er auf der Opensuse-Konferenz in Prag erklärt, warum sein Job ziemlich schwer ist.

Ein Puzzle mit vielen kleinen Teilen

Eine Linux-Distribution besteht aus Tausenden einzelnen Softwarepaketen. Die Hauptaufgabe von Kulow besteht darin, dieses Puzzle richtig zusammenzusetzen beziehungsweise die dazu notwendige Arbeit zu koordinieren. Theoretisch hat jedes Paket einen Betreuer, sogenannte Maintainer, die sich um das Kompilieren des Quellcodes und das Bauen des Pakets kümmern.

Fertige Pakete werden von den Betreuern dann in den Entwicklungszweig Factory eingepflegt, um die Distribution zusammenzubauen. Aus dem Factory-Zweig werden derzeit im Rhythmus von acht Monaten die stabilen Opensuse-Versionen abgezweigt.

Doch erst nach dem Einreichen der Pakete merkt Kulow meist, ob alles in Ordnung ist oder eben nicht. Im Zusammenspiel verschiedener Pakete können unerwartete Fehler auftreten, die verhindern, "dass ein Paket baut" . Die Fehler versucht Kulow, zusammen mit einem kleinen Team zu beheben. Bei schwierigen Fehlern, für die der Quellcode näher betrachtet werden muss, verweist Kulow die Pakete zurück an die Betreuer.

Software wird notfalls rausgeworfen

Es kann aber auch vorkommen, dass sich die Betreuer nicht mehr um die Pakete kümmern können, etwa weil sie nicht mehr genügend Zeit dazu haben – oder weil sich ihre Interessen verlagern. Auf einer entsprechenden Mailingliste sucht das Opensuse-Projekt dann nach einem neuen Betreuer. Findet sich dieser nicht, bleibt nichts anderes übrig, als das Paket aus der Distribution zu entfernen.

Dieser Fall tritt aber vergleichsweise selten ein. Bei den meisten Paketen, etwa bei jenen für Gnome oder KDE, gibt es ein Betreuerteam, dessen Mitglieder sich die Verantwortung und auch die Arbeit teilen. Wenn zum Beispiel einer der Betreuer im Urlaub ist, können die anderen seine Arbeit übernehmen. Gibt es hingegen nur einen, kann es vorkommen, dass das Paket "ein paar Wochen liegenbleibt." b

Der Open-Build-Service als Hilfe

Um diesen Prozess zu vereinfachen, hat das Opensuse-Team den Open-Build-Service(öffnet im neuen Fenster) (OBS) entworfen, an dem unter anderem der langjährige Suse-Mitarbeiter Hendrik Vogelsang mitarbeitet. Mit Hilfe einer eigenen Instanz des OBS(öffnet im neuen Fenster) versucht Opensuse, das Bauen der Pakete zu einem großen Teil zu automatisieren.

Opensuse nutzt zum Bauen virtuelle Maschinen (VM), die in einem Xen-Hypervisor laufen. In jeder VM wird ein minimales Betriebssystem gestartet, darin werden die zum Bauen einer Software benötigten Pakete installiert und letztlich die Software kompiliert.

Der OBS koordiniert dabei zum Beispiel, in welcher Reihenfolge verschiedene Pakete entsprechend ihrer Abhängigkeiten gebaut werden können und stellt fertig erstellte Pakete direkt über die Server bereit. Darüber hinaus bietet der OBS Entwicklern Schnittstellen an, um die Pakete einfach zu betreuen. Dazu gehören ein Werkzeug für die Kommandozeile(öffnet im neuen Fenster) und ein Web-UI, das viele Informationen bietet, wie etwa eine Fortschrittsanzeige beim Bauen der Pakete.

Für einen einfachen Einstieg in die Entwicklung von Opensuse sorgt der OBS ebenfalls, wie Vogelsang versichert. Falls es zum Beispiel nicht möglich ist, ein Paket zu bauen, kann sich jeder mit einem OBS-Account des Problems annehmen und ein Paket mit dem behobenen Fehler wieder einreichen. Die Eintrittshürde hält das Opensuse-Projekt dafür bewusst gering. Es verlangt zum Beispiel keine Contributor-Aggreements.

Höher, schneller, weiter – nur wie?

Zwar vereinfacht der OBS vieles, das Opensuse-Projekt hat jedoch einen "Anspruch, der uns manchmal das Genick bricht" , so Kulow. Wird etwa eine Systemkomponente wie die Gnu Compiler Collection in einer neuen Version eingepflegt, wird die gesamte Distribution mit den neuen Compilern gebaut. Selbst wenn dabei keine Fehler auftreten sollten, kann das mit der derzeitigen Hardware bis zu zwei Tage in Anspruch nehmen. Andere Distributionen greifen teils auf ältere Pakete zurück.

Dieser Aspekt war einer von vielen, die von Entwicklern nach dem Verschieben von Opensuse 12.2 hitzig diskutiert wurden. Doch auch der testweise Einbau von SSDs in die Server hätte zu keinem spürbaren Geschwindigkeitszuwachs geführt. Die möglichen Ursachen dafür sind sehr vielschichtig und entsprechend schwer zu finden.

Um auch den Arbeitsablauf zu optimieren, entwickelt Kulow auch am OBS selbst, um seine Wünsche und Ideen umzusetzen, und hofft, dass die beteiligten Entwickler seinem Beispiel folgen und sich mehr um den Factory-Zweig sowie OBS kümmern.

Never change a running system

Große Änderungen an dem beschriebenen Prozess wird es in nächster Zeit nicht geben und auch der geplante Veröffentlichungszyklus soll beibehalten werden. Darauf einigten sich die Entwickler auf der Opensuse-Konferenz. Das heißt, die nächste Opensuse-Version soll nach dem Willen des Teams im März 2013 erscheinen.

In der Diskussion, die auf das Verschieben von Opensuse 12.2 folgte, wurden auch einige Ideen geäußert, die nun also nicht umgesetzt werden. Dazu gehörte etwa, die Rolle des Rolling-Release-Zweiges Tumbleweed(öffnet im neuen Fenster) zu stärken und diesen als Grundlage für die einzelnen Versionen zu machen.

Kulow sagte, das hätte unter anderem einen zu großen Aufwand mit mehreren parallelen Entwicklungszweigen zur Folge. Dies wäre, vor allem in Anbetracht der aktuellen Situation, wahrscheinlich nicht handhabbar und sei deshalb auch nicht umgesetzt worden.


Relevante Themen