Kein seltenes Szenario für Linux-Anwender: Ein bestimmtes Tool steht als fertiges Paket nur für eine bestimmte Distribution bereit oder in einer aktuellen benötigten Version nur für Arch Linux. Der Weg in eine virtuelle Maschine ist ein langer. Denn dort muss das Gastsystem erst installiert werden, verlangt nach Arbeitsspeicher und Prozessorzyklen.
Effizienter ist die Arbeit mit Container-Runtimes wie Docker und dem derzeit heiß gehandelten Podman. Mit Podman kann Distrobox andere Linux-Distributionen in Containern auf dem gleichen Linux-System starten. Der Kernel wird dabei weiterverwendet und die Umgebungen laufen nahezu mit der gleichen Leistung wie das Hostsystem.
Distrobox hat die Anforderungen von Anwendern im Sinn und nicht jene von Serveradministratoren. Es bindet deshalb das Home-Verzeichnis sowie Wechselmedien für Lese- und Schreibzugriffe in ein so gestartetes Containersystem ein. Auch Netzwerk- und Internetverbindung werden durchgereicht. Für grafische Anwendungen stellt Distrobox eine Schnittstelle zum Displayserver des Hostsystems per Wayland oder X11 bereit, damit auch Programme mit Oberfläche laufen können.
Voraussetzungen und Installation
Die Bedienung, also das Anlegen, Starten und Stoppen von Containern, erfolgt in der Kommandozeile. Die Syntax der Distrobox, im Wesentlichen eine Sammlung von Shell-Scripts, fällt dabei deutlich einfacher aus als jene von Podman. Zwar ist Distrobox ein noch junges Projekt, aber bereits in den Standard-Paketquellen einiger Linux-Systeme vorhanden: In Ubuntu 22.10 ist das Programm im Terminal mittels
sudo apt install distrobox podman
samt der Containertechnik Podman flott installiert. Auch Fedora Linux hat diese Pakete schon im Repertoire. Und wer mit Ubuntu 22.04 LTS oder Linux Mint 21.x arbeitet, braucht auf Distrobox auch nicht zu verzichten, denn es ist auf diesen Systemen aus den Quellen der Entwickler und mit Podman im Hintergrund mit wenig Aufwand installiert. Zuerst richtet
sudo apt install podman
das benötigte Containertool Podman ein und das Kommando
wget https://raw.githubusercontent.com/89luca89/distrobox/main/install
holt das Installations-Script in das aktuelle Verzeichnis. Der Befehl
sudo sh install
legt dann die Scripts von Distrobox auf dem System an.
Distribution wählen, einrichten und starten
Der erste Schritt ist der Blick auf die Liste der Linux-Systeme, welche Distrobox einrichten kann. Die Basisimages werden dabei nicht neu gebaut (das wäre zu zeitintensiv), sondern von den etablierten Containerverzeichnissen wie www.quay.io, www.docker.io und https://gallery.ecr.aws heruntergeladen. Die Datenmenge dafür betragen je nach System zwischen 80 und 200 MB, also ist bei der ersten Einrichtung eine schnelle Internetverbindung von Vorteil.
Eine Liste der verfügbaren Systeme ist in der Kommandozeile nicht abrufbar, sondern nur in der Tabelle auf der Github-Seite der Entwickler aufgeführt. Hier gibt der Abschnitt „Containers Distros“ die Linux-Systeme mit Versionsnummern und in der Spalte „Images“ mit der jeweiligen Quelle an. Anhand dieser letzten Spalte installiert Distrobox auf Kommando das gewünschte System unter einem frei wählbaren Namen (Platzhalter „[NAME]“) nach dieser Syntax:
distrobox-create –name „NAME“ –image „[QUELLE]“
„sudo“ ist nicht notwendig, denn die Container laufen im Kontext des angemeldeten Benutzers. Das folgende Beispiel holt und startet Arch Linux in der neuesten Version in der Distrobox:
Schritt 1: Der neue Container erhält den Namen „Arch“ und wird mit der Eingabe
distrobox-create –name Arch –image docker.io/library/archlinux:latest
angelegt. Distrobox überprüft zuerst, ob es den Container und das Image schon gibt, und fragt dann nochmals mit „Image archlinux:latest not found. Do you want to pull the image now?“, ob es den Eintrag neu anlegen soll, was die Bestätigung mit „Y“ erledigt. Dieser Einrichtungsprozess dauert auch auf bescheidenen Rechnern nur wenige Minuten.
Schritt 2: Weiter geht es dann mit dem ersten Start des Containers, der dabei von Distrobox fertig konfiguriert wird. Im gewählten Beispiel Arch Linux dauert dies auch nicht lange:
distrobox-enter Arch
Systeme komfortabel installieren und starten: Nach dem Erstellen eines Containers richtet Distrobox beim ersten Aufruf alle Verbindungen zum Hostsystem ein.
IDG
Schritt 3: Das Containersystem läuft nun und der Eingabeprompt ändert sich zu „[User]@arch“. Die Eingabe von „ls“ zeigt, dass das Home-Verzeichnis des Benutzers auf dem Host schon eingebunden ist. Vorsicht ist also angebracht, denn Schreibaktionen im Container wirken sich auf die physikalisch vorhandenen Dateien aus. Distrobox arbeitet so, als ob es sich dabei um ein gewöhnliches Terminalfenster handelte.
Der automatisch angemeldete User, der den Namen des Benutzers des Hostsystems beibehält, ist dabei in der Distrobox für die Verwendung von „sudo“ (ohne Passwort) vorkonfiguriert. So kann es also gleich an die weitere Ausstattung dieses Containers mit Softwarepaketen gehen. In diesem Beispiel installieren wir den Dateimanager Midnight Commander und den Systemmonitor im laufenden Arch-Linux-Container:
sudo pacman -S mc htop
Diese Änderungen im Container sind permanent und vom Hostsystem isoliert. Es ist also möglich, hier Pakete von Arch Linux zu installieren und damit die Dateien im Home-Verzeichnis zu bearbeiten.
Schritt 4: Die Eingabe von „logout“ oder die übliche Tastenkombination Strg-D führt aus dem Container zurück zur Shell des Hostsystems, wobei das Containersystem aber aktiv im Hintergrund bleibt. Dort laufende Hintergrundprozesse werden nicht abgebrochen und mit
distrobox-enter Arch
kann man jederzeit in das System zurückkehren. Erst der Befehl
distrobox stop Arch
wird den Container mit dem Namen „Arch“ anhalten.
Verwaltung und Verknüpfungen
Distrobox kann mehrere Container erstellen und ausführen. Die Grenze ist also äußerlich durch den Speicherplatz auf dem Hostsystem gesetzt. Pro System sind je nach Ausstattung zwischen 500 MB und zwei GB Platz gefragt.
Mit dem Befehl
distrobox-list
erhält man eine Liste der installierten Distrobox-Container mit Namen in einer Tabelle. Die Einträge mit dem Status „Exited“ laufen aktuell nicht, während aktive Container ihre Laufzeit anzeigen.
Alle installierten Systeme anzeigen: In einer Übersicht zeigt Distrobox die bereits eingerichteten Container an. Hier ist auch sichtbar, welche Container aktiv sind.
IDG
Wird eines der Systeme in Distrobox gar nicht mehr benötigt, so entfernt das Kommando
distrobox rm [Name]
dieses vom Hostsystem.
Die eingangs erwähnte Schnittstelle zum Desktop des Hostsystems kann auch grafische Anwendungen aus dem Container heraus ausführen, nachdem diese dort installiert wurde. Auch Verknüpfungen im Anwendungsmenü des Hostsystems sind möglich. In einem Container, in welchem beispielsweise Gedit installiert ist, legt das Kommando
distrobox-export –app gedit
eine Verknüpfung zu diesem Editor auf dem Hostsystem an. Ein Klick darauf startet den Container und zeigt das Programmfenster nahtlos auf der Arbeitsfläche an.
Verknüpfung zur einer grafischen Anwendung im Container: Bei einem Aufruf, hier unter Gnome, startet der Distrobox- Container und zeigt das Programm auf dem Desktop an.
IDG
Mehr Lesetipps:
Linux-Distributionen im Browser ausprobieren
Android-Apps unter Linux nutzen – so geht’s
Personal Software