Es gibt mehrere Möglichkeiten, Distributionen in virtuellen Umgebungen zu testen. Da wären Hypervisoren wie VMware, VirtualBox, KVM/QEMU oder GNOME Boxen. Proxmox ist eine Virtualisierungsplattform zum Betrieb von virtuellen Maschinen über ein Webinterface. Und dann ist da noch Distrobox, eine Anwendung für die Kommandozeile, die Fedoras Toolbox als Vorlage nimmt.
Wrapper um Docker oder Podman
Bei Distrobox handelt es sich um einen Wrapper um Docker oder Podman herum, um im Terminal Container zu erstellen und zu starten, die hochgradig mit den Hosts integriert sind. Diese Container nehmen beliebige Distributionen auf und erlauben Zugriff auf das Home-Verzeichnis des Benutzers, die Wayland- und X11-Sockets, Netzwerke, Wechseldatenträger, das systemd-Journal, DBus, Udev und andere Komponenten bietet.
Distrobox basiert auf einem OCI-Image zur Erstellung und nutzt im Gegensatz zu Toolbox POSIX.sh als [wiki title=”Kommandozeileninterpreter”]Command Line Interpreter[/wiki].
Distrobox ist bereits in einigen Distributionen verfügbar. Wenn deine Distribution nicht dabei ist, oder die Version nicht aktuell genug ist, ist die Anwendung schnell über diesen Befehl installiert:
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh
Da Podman von Hause aus ohne Root-Rechte läuft, ergibt es Sinn, Podman anstatt Docker zu nutzen. Wir haben testweise Arch in einem Distrobox-Container in Fedora 36 aufgesetzt. Dazu diente der Befehl:
distrobox-create --name archie --image archlinux
gefolgt von
distrobox-enter --name archie
Nun lassen sich alle Pakete, die Arch zu bieten hat, inklusive solcher aus dem AUR installieren. Das schließt auch grafische Anwendungen ein. wir haben testweise SM-Player installiert.
Installierte Apps lassen sich auch in den Host verschieben:
distrobox-export --app smplayer
Auch Binaries und systemd-services können exportiert werden. Distrobox unterstützt lediglich sieben Befehle und ist somit schnell beherrschbar:
- distrobox-create – erstellt einen Container
- distrobox-enter – gewährt Zugang zu einem Container
- distrobox-list – listet alle erstellten Container auf
- distrobox-init – ist der Einstiegspunkt für eine erstellte Distrobox.
- distrobox-export – exportiert Dienste und App aus dem Container in den Host
- distrobox-rm – löscht einen Container
- distrobox-stop – stoppt einen Container
Der gesamte Vorgang hat keine fünf Minuten gedauert, die sinnvollen Einsatzgebiete kann bestimmt jeder selbst für sich herausfinden.