Debian-Pakete auf schwachen Architekturen bauen

Geschrieben von MMind am Samstag, 29. Januar 2011 in Software

Debian-Pakete sollen vor dem hochladen in das Archiv ein einer »sauberen« Umgebung gebaut werden. Im Allgemeinen ist dies ein chroot das durch pbuilder verwaltet wird. pbuilder installiert dabei Pakete, die zum bauen nötig sind in das chroot und räumt sie danach auch wieder weg. Durch die Verwendung von pbuilder, oder einem seiner Verwandten, wird sichergestellt dass alle »build-dependencies« im Paket deklariert sind und dass das Programm nicht gegen irgendwelche obskuren Bibliotheksversionen gelinkt wird, die sich gerade auf dem Host-System befinden.

Schwachen System

Ganz offensichtlich führt schon die geringere Rechenleistung zu sehr langen Kompilationszeiten, sofern nicht vorher der meist ebenfalls geringe Arbeitsspeicher die Kompilation abbricht.

Ein weiteres Problem bereitet der Flash-Speicher, der meist in Embedded-Systemen verwendet wird. Der pbuilder packt für jeden build-Vorgang sein chroot aus, installiert weitere Pakete dort hinein, kompiliert das Programm und räumt schließlich alles wieder weg. Dadurch erzeugt er eine Unmenge Schreibvorgänge, die den Flash-Speichern sehr zusetzen.

Qemubuilder

Qemubuilder startet eine virtuelle Maschine der Zielarchitektur und führt den pbuilder in dieser aus. Das Problem ist nur, dass dies im Allgemeinen noch langsamer vonstatten geht als das direkte Bauen auf dem Gerät.

qemu-user

Via Jabber kam noch der Einwurf, man könnte auch qemu selbst verwenden. qemu-user ermöglicht es, einzelne Programme als andere Architektur auszuführen. Man müsste also ein armel-chroot erstellen, dort hineinwechseln und könnte dann den armel-pbuilder aufrufen. Die entsprechenden qemu-Binaries kümmern sich dann um das Ummodeln der armel-Instruktion in welche für x86. Hab ich heute also wieder was gelernt :-) .

Meine Lösung

Ich habe mich dann einfach dafür entschieden meiner Sammlung von ARM-Geräten eines hinzuzufügen, dass Pakete in einer annehmbaren Geschwindigkeit bauen kann — eben der Toshiba AC100.

Eigentlich dachte ich vorher eher an einen SheevaPlug, den Ausschlag für den AC100 gab dann aber der Umstand dass er das tollere Spielzeug ist und weitere Nutzungsmöglichkeiten ausser dem buildhost-Dasein bietet.

Da er auch einen USB-Host-Port besitzt kann ich auch das Flash-Abnutzungproblem vermeiden indem ich einfach eine USB-Festplatte als Medium für den pbuilder nutze.


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA 1CAPTCHA 2CAPTCHA 3CAPTCHA 4CAPTCHA 5


Suche

Nach Einträgen suchen in Outside the Walled Garden:

Das Gesuchte nicht gefunden? Gib einen Kommentar in einem Eintrag ab oder nimm per E-Mail Kontakt auf!