Open Source

Debian oder Yocto – welches Linux-Buildsystem ist besser?

< zurück

Seite: 3/4

Anbieter zum Thema

Welche Debian-basierten Buildsysteme gibt es?

Debian ist in erster Linie eine bereits existierende, auf Binärpaketen basierende Distribution (aber nicht nur das – Debian erlaubt es selbstverständlich auch, aus dem Quellcode alle benötigten Pakete selber zu bauen). Herzstück der Distribution ist das Paketmanagement, das sich um die Installation von Binärpaketen, die Verwaltung von Paketquellen und die Berücksichtigung von Abhängigkeiten zwischen Paketen kümmert.

Das ELBE-Plattformkonzept: ELBE (Embedded Linux Build Environment) deckt alle Anforderungen an ein Buildsystem ab und dient zum reproduzierbaren Erstellen Debian-basierter Systeme für eine bestimmte Hardware.(Bild:  Linutronix)
Das ELBE-Plattformkonzept: ELBE (Embedded Linux Build Environment) deckt alle Anforderungen an ein Buildsystem ab und dient zum reproduzierbaren Erstellen Debian-basierter Systeme für eine bestimmte Hardware.
(Bild: Linutronix)

Im Gegensatz zu vielen anderen Distributionen, die ursprünglich aus dem Desktop-Bereich kommen, stellt Debian auch Binärpakete für eine Vielzahl von CPU-Architekturen zur Verfügung. Neben x86 (32-bit und 64-bit) sind das unter anderem: Power PC, ARM mit und ohne Hardware Floating Point und MIPS, was Debian somit auch für die meisten Embedded-Plattformen interessant macht. Vorteile von Debian sind die enorme Entwicklergemeinde, die Langlebigkeit der Technik (Debian existiert seit mehr als 20 Jahren) und die fast unbegrenzte Auswahl an Softwarepaketen. Weiterhin sind viele Mechanismen aus dem Desktop oder Serverbereich durchaus auch im industriellen Umfeld von großem Nutzen.

So kann das Paketmanagement zum Beispiel zum Einspielen von Updates verwendet werden und mit signierten Paketquellen lässt sich auch prüfen, ob die eingespielte Software tatsächlich vom richtigen Anbieter kommt. Nun ist Debian an sich eine bereits existierende Distribution mit einer großen Paketauswahl, die im industriellen Umfeld genutzt werden kann.

Ein Buildsystem, das sich diese Technik zu Nutze macht, ist zum Beispiel ELBE (Embedded Linux Build Environment, http://elbe-rfs.org). ELBE deckt alle Anforderungen an ein Buildsystem ab und dient zum reproduzierbaren erstellen Debian-basierter Systeme für eine bestimmte Hardware (unter Berücksichtigung aller wichtigen Teilaspekte, wie zum Beispiel dem Lizenzmanagement).

Vor- und Nachteile der verschiedenen Ansätze

Beide hier vorgestellten Ansätze haben ihre Vorzüge, aber auch ihre Nachteile. So kann beim Yocto Ansatz zum Beispiel jeder Compile-Parameter beeinflusst werden, während bei Debian basierten Ansätzen zunächst vorkompilierte Pakete verwendet werden (die für 98 Prozent der Anwendungsfälle problemlos nutzbar sind). Im Gegenzug haben sourcebasierte Systeme (also Yocto) auch einige Probleme. Das Cross-Kompilieren der einzelnen Komponenten ist nicht ganz trivial und für die meisten Open-Source-Projekte sind Anpassungen erforderlich, damit sich diese überhaupt cross-kompilieren lassen. Die Wartung und Pflege dieser Anpassungen ist Aufgabe des jeweiligen Buildsystems, was sehr häufig zu einer eher eingeschränkten Paketauswahl führt.

Ein weiterer Nachteil des Cross-Kompilierens sind die relativ großen Abhängigkeiten zum Host-System, was gerade im Hinblick auf die Reproduzierbarkeit große Einschränkungen mit sich bringen kann. Diese Arbeit wird auf Debian-Seite von der großen Entwicklergemeinde erledigt, womit sich Debian-basierte Buildsysteme nicht mehr um diese Themenstellung kümmern müssen. Dem Anwender steht also die komplette Paketauswahl zur Verfügung. In der Debian-Entwicklergemeinde steckt darüber hinaus noch ein weiterer Vorteil: Sie bekommen alle Pakete aus einer Hand.

Yoctos Layerkonzept wird von den jeweiligen Hardwareherstellern üblicherweise zum Einbringen eigener Anpassungen genutzt. Für den Endanwender stellt sich Yocto also immer als eine Kombination aus dem Yocto-Projekt und den Erweiterungen eines oder mehrerer Drittanbieter dar. Die Qualität und auch die Art der Umsetzung solcher Layer kann durchaus sehr unterschiedlich sein. Yocto ist also nicht zwingend gleich Yocto.

Allerdings haben Debian-basierte Systeme eine gewisse Größenanforderung. Sofern das Paketmanagement auf dem Zielsystem genutzt werden soll, sind 32 bis 64 MB Datenspeicher erforderlich, während mit Yocto-basierten Ansätzen auch deutlich kleinere Speichergrößen bedient werden können.

Themen wie das Lizenzmanagement werden von beiden Systemen ähnlich komfortabel gelöst. Yocto unterstützt hier das sogenannte SPDX-Format zur Weitergabe von Lizenzen und auch Debian stellt ein automatisch parsbares Format bereit, das weitestgehend mit dem SPDX-Format kompatibel ist.

Artikelfiles und Artikellinks

(ID:43669337)

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung