Mit Distrobox containerisierte Versionen von Linux installieren

Aus LinuxUser 01/2025

Mit Distrobox containerisierte Versionen von Linux installieren

© Federico Rostagno / 123RF.com

Eines für alle

Distrobox nutzt Docker, Podman oder Lilipod, um mehrere Distributionen in einen Container zu packen.

Distributionstests gehören zum Alltag vieler Entwickler, Distro-Hopper betrieben sie als Hobby. Die gängigste Methode nutzt dazu die Virtualisierung. Es gibt verschiedene Möglichkeiten, Distributionen in virtuellen Umgebungen auszuführen. Das Spektrum reicht von Hypervisoren wie VMware, Virtualbox und KVM/QEMU bis zu Gnome Boxen.

Proxmox, Unraid und TrueNAS als Betriebssysteme für NAS und Storage eignen sich ebenfalls als Virtualisierungsplattformen zum Betrieb virtueller Maschinen über ein Webinterface. Hinzu kommt das seit 2021 vom Entwickler Luca Di Maio entwickelte Distrobox [1], das auf Fedoras Toolbox [2] als Vorlage zurückgreift. Mittlerweile gibt es passend dazu die grafische Oberfläche Boxbuddy [3], die wir in unseren Test einbeziehen.

Distrobox positioniert sich quasi als Schweizer Messer der Distributionsszene. Entwickler und Paketbetreuer können mit Distrobox-Containern ihre Anwendungen schnell auf unterschiedlichen Distributionen testen. Angenommen, Sie verwenden Debian als Hostsystem und haben in Distrobox Arch Linux installiert, dann können Sie Ihre Pakete nicht nur gegen Arch Linux testen, sondern auch gegen Debian, Fedora, Suse und viele andere Distributionen.

Bei Distrobox selbst handelt es sich allerdings nicht um eine Container-Engine. Zum Erstellen der Container, in denen später die Distributionen laufen, bedient es sich bei Docker, Podman oder Lilipod. Die eng in den Host integrierten Container gestatten die gemeinsame Nutzung des Home-Verzeichnisses des Hosts, binden externen Speicher sowie externe USB-Geräte ein und erlauben das Ausführen grafischer Anwendungen unter X11 und Wayland.

Distrobox arbeitet auf jedem Linux-Host. Es kommt selbst in unveränderlichen Distributionen wie Fedora Silverblue zum Einsatz, um Low-Level-Tools oder Treiber zu installieren, ohne die Immutability zu unterlaufen. Das unveränderliche Vanilla OS, das Luca Di Maio ebenfalls mitentwickelt, verwendete Distrobox als Vorbild für den hauseigenen unkonventionellen Paketmanager APX [4]. Wer anhand der hier aufgezählten Funktionalität nun glaubt, Distrobox sei kompliziert, der irrt: Sowohl die Installation als auch der Betrieb im Terminal oder mit Boxbuddy lassen sich leicht nachvollziehen.

Der Entwickler von Distrobox empfiehlt Podman als Container-Engine, da es im Gegensatz zu Docker von Haus aus ohne Root-Rechte auskommt. Sie benötigen also drei Pakete: Podman (beziehungsweise Docker oder Lilipod), Distrobox und Boxbuddy, falls Sie eine GUI bevorzugen.

Podman und Distrobox lassen sich in den meisten Distributionen über den jeweiligen Paketmanager installieren (Listing 1). Ist das erledigt, prüfen Sie die Funktionalität von Podman mit dem Kommando podman run quay.io/podman/hello. Erscheint eine Ausgabe wie in Abbildung 1, dann sind Sie bereit für den ersten Container. Haben Sie sich für Docker entschieden, zeigt der Befehl sudo systemctl is-active docker im Erfolgsfall einfach den String active an.

Listing 1

Installation

### Installation unter Debian
$ sudo apt update && sudo apt install podman distrobox
### Installation unter Fedora
$ sudo dnf update && sudo apt install podman distrobox
### Installation unter Arch Linux
$ pacman -S podman distrobox

Abbildung 1: Podman meldet sich dienstbereit und zeigt Links zu hilfreichen Webseiten und Dokumenten.

Abbildung 1: Podman meldet sich dienstbereit und zeigt Links zu hilfreichen Webseiten und Dokumenten.

Der erste Container

Jetzt ist es an der Zeit, den ersten Container zu erstellen. Dazu genügt der Befehl distrobox create. Für Intel- und AMD-Grafikkarten haben die Entwickler die Unterstützung bereits integriert, da die Container automatisch die neuesten verfügbaren Mesa-DRI-Treiber installieren. Falls Sie eine Nvidia-Grafikkarte betreiben und sie in den Container durchschleifen möchten, rufen Sie distrobox create --nvidia auf (Abbildung 2).

Abbildung 2: Ohne Angabe weiterer Optionen setzt das <code>create</code>-Kommando einen Container auf der Basis des aktuellen Fedora&nbsp;41 auf und &uuml;bermittelt den Befehl zu dessen Betreten.

Abbildung 2: Ohne Angabe weiterer Optionen setzt das create-Kommando einen Container auf der Basis des aktuellen Fedora 41 auf und übermittelt den Befehl zu dessen Betreten.

Daraufhin erzeugt Distrobox automatisch einen Container und installiert darin Fedora, ohne dass Sie dazu eine weitere Angabe machen mussten. Die Ausgabe der Konsole verrät außerdem, dass der Name des Containers my-distrobox lautet. Der Grund für diesen Automatismus liegt darin, dass Sie dem Create-Befehl weder eine Distribution noch einen Namen für den Container mitgegeben haben. Dementsprechend kommt schlicht die Abstammung von Fedoras Toolbox zum Tragen.

Fedora als Standard

Sobald der Container samt Fedora existiert (Abbildung 3), betreten Sie ihn mit dem Kommando distrobox enter my-distrobox. Der Prompt teilt Ihnen zwar mit, dass Sie sich im Container my-distrobox befinden, aber was genau läuft darin? Das verrät Ihnen cat /etc/os-release. In unserem Fall handelt es sich um Fedora 41 in der Toolbox-Variante. Wenn Sie danach mit uname -r den verwendeten Kernel abfragen, stellen Sie fest, dass ressourcenschonend der Kernel Ihres Hosts zum Einsatz kommt.

Abbildung 3: Nach dem Erstellen eines Containers installiert Distrobox die notwendigen Pakete und richtet ein Benutzerkonto sowie Sudo und das Init-System ein.

Abbildung 3: Nach dem Erstellen eines Containers installiert Distrobox die notwendigen Pakete und richtet ein Benutzerkonto sowie Sudo und das Init-System ein.

Um einen weiteren Container zu erstellen, verlassen Sie my-distrobox mit dem Befehl exit. Beim nächsten Container übernehmen Sie mehr Kontrolle beim Aufsetzen und der Benennung (Listing 2). Über die Option -n vergeben Sie einen Namen. Mit --image legen Sie fest, welche Distribution Sie installieren möchten (Abbildung 4). Um stets das aktuellste Release zu erhalten, verwenden Sie einfach latest anstelle einer Versionsnummer.

Listing 2

Container erstellen

$ distrobox create -n ubu --image ubuntu:24.10

Abbildung 4: Mit wenigen Parametern geben Sie dem Create-Befehl den Namen des Containers und die zu verwendende Distribution mit.

Abbildung 4: Mit wenigen Parametern geben Sie dem Create-Befehl den Namen des Containers und die zu verwendende Distribution mit.

Container-Registries

Fragt sich noch, woher Distrobox die Images nimmt. Die Datei /etc/containers/registries.conf.d/shortnames.conf enthält eine Liste der wichtigsten Distributionen samt ihren shortnames (abgekürzten Namen).

Weitere Distributionen und Pakete finden Sie in Container-Registries wie Quay.io [6], Github Container Registry [7] und Amazon Elastic Container Registry [8]. Für Distributionen, die Sie nutzen möchten, legen Sie anstelle der langen URI ein Kürzel in der shortnames.conf fest. Über den Befehl distrobox list behalten Sie den Überblick über die installierten Distributionen (Abbildung 5). Alle in Distrobox anwendbaren Kommandos zeigt wie üblich die Hilfe per distrobox -h.

Abbildung 5: Die Liste der containerisierten Distributionen zeigt ID, Name und auch den Status sowie die Herkunft des Images an.

Abbildung 5: Die Liste der containerisierten Distributionen zeigt ID, Name und auch den Status sowie die Herkunft des Images an.

Nachdem dem Installieren einiger Distros wandten wir uns im Test dem Experimentieren zu. Zunächst installierten wir den Dateimanager Nautilus im Arch-Container. Die Integration des Home-Verzeichnisses verlief erstaunlich problemlos. Wir konnten entfernte Shares starten, die per WebDAV, NFS oder SMB in unserem Home eingebunden waren. Apps, die in verschiedenen Distributions-Containern laufen, lassen sich ebenfalls an den Host durchreichen und dort nutzen (Abbildung 6).

Abbildung 6: Ein im Arch-Container installierter Firefox taucht nach dem Export bei der Suche im Hostsystem neben dem dort nativ installierten Firefox auf.

Abbildung 6: Ein im Arch-Container installierter Firefox taucht nach dem Export bei der Suche im Hostsystem neben dem dort nativ installierten Firefox auf.

Das erledigte im Beispiel aus Abbildung 7 der Befehl distrobox-export --app nautilus. Die App tauchte anschließend im Menü des Hosts auf und ließ sich von dort aufrufen. Auf diese Weise nutzen Sie beispielsweise Pakete aus den Archiven der in Distrobox installierten Distributionen auf Ihrem Host [9]. Mehrere Versionen einer Anwendung aus unterschiedlichen Distributionen kommen sich dabei nicht ins Gehege. An den Host angesteckte Peripherie wie USB-Sticks oder externe Festplatten werden automatisch an Distrobox durchgereicht.

Abbildung 7: Der Dateimanager Nautilus im Arch-Container bindet nicht nur das Home-Verzeichnis des Hosts ab, sondern greift auch transparent auf darin verkn&uuml;pfte Shares zu.

Abbildung 7: Der Dateimanager Nautilus im Arch-Container bindet nicht nur das Home-Verzeichnis des Hosts ab, sondern greift auch transparent auf darin verknüpfte Shares zu.

Desktop-Umgebungen

Distrobox lockt unter anderem damit, Desktop-Umgebungen wie Gnome oder KDE Plasma im Container laufen zu lassen. Die Erklärung, wie das zu bewerkstelligen ist, würde den Rahmen des Artikels sprengen. Es gibt aber eine detaillierte Beschreibung auf Github [10]. Bitte beachten Sie dabei, dass der Befehl dnf groupinstall mittlerweile dnf group install heißt.

Innerhalb eines Distrobox-Containers können Sie weitere Docker-, Podman-, Lilipod- oder LXC-Container erstellen. Auch Android-Anwendungen mit Waydroid sind möglich. Am einfachsten klappt das mit dem Waydroid-Image von Vanilla OS, wie in der Dokumentation erläutert.

Wenn Sie sich trotz der einfachen Bedienung mit relativ wenigen Konsolenbefehlen eine GUI wünschen, empfehlen wir das aus dritter Hand stammende Boxbuddy. Die App listet alle in Distrobox installierten Distributionen auf, egal ob man sie mit Boxbuddy oder direkt im Terminal hochgezogen hat. Die GUI erlaubt unter anderem das Öffnen der Distributionen in der Konsole, zeigt installierte Anwendungen und bindet Pakete ein. Der Eintrag Box aktualisieren nimmt ein System-Upgrade der jeweiligen Distribution vor. Analog dazu funktionieren Clone Box (Abbildung 8) und Box löschen (Abbildung 9).

Abbildung 8: Boxbuddy ist eine einfache grafische Oberfl&auml;che f&uuml;r Distrobox. Links f&uuml;hrt sie die installierten Distributionen auf, rechts stehen die f&uuml;r die gew&auml;hlte Distribution anwendbaren Befehle.

Abbildung 8: Boxbuddy ist eine einfache grafische Oberfläche für Distrobox. Links führt sie die installierten Distributionen auf, rechts stehen die für die gewählte Distribution anwendbaren Befehle.


Abbildung 9: Boxbuddy zeigt eine Liste der Distributionen, deren Images sich standardm&auml;&szlig;ig &uuml;ber Distrobox beziehen lassen. Weitere Images k&ouml;nnen Sie aus verschiedenen Quellen per Kommandozeile oder in Boxbuddy hinzuf&uuml;gen.

Abbildung 9: Boxbuddy zeigt eine Liste der Distributionen, deren Images sich standardmäßig über Distrobox beziehen lassen. Weitere Images können Sie aus verschiedenen Quellen per Kommandozeile oder in Boxbuddy hinzufügen.

Fazit und Ausblick

Distrobox erfindet das Rad nicht neu: Alle seine Funktionen ließen sich schon zuvor auf anderen Wegen umsetzen. Die Anwendung macht es lediglich spielerisch einfach, mit Containern zu jonglieren. Die Dokumentation [11] auf der Webseite des Tools fällt ausreichend detailliert aus. Wenn Sie sich grundlegend eingearbeitet haben, legen wir Ihnen ans Herz, in der Dokumentation die Rubrik Useful tips zu studieren. Sie wartet mit vielen weiteren Einsatzszenarien für Distrobox auf.

Langfristig soll im Rahmen der besseren Integration Cockpit [12] als webbasierte GUI für Distrobox Einzug halten. Die Grundlagen dafür sind mit dem Projekt Cockpit-Podman [13] auf Github bereits gelegt. Damit erweitert sich der potenzielle Benutzerkreis der Software, die sich so dem Ziel nähert, in zahlreichen Szenarien Dual-Boot und virtuelle Maschinen zu ersetzen.

Eine Ausnahme bildet Ubuntu, das Distrobox erst seit Version 23.04 in den Repos führt. Nutzen Sie eine ältere Version der Distribution, weichen Sie auf das PPA [5] aus. Boxbuddy lässt sich bisher nur über das AUR von Arch Linux sowie bei Manjaro und bei NixOS direkt installieren. Für alle anderen Linux-Derivate liegt eine aktuelle Version 2.3.2 auf Flathub bereit. (csi)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 01/2025 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben