Tool- und Distrobox

Mo, 14. Februar 2022, Silas

Ich nutze Fedora Silverblue jetzt seit ca. einem halben Jahr und obwohl ich lange Zeit dachte, mein Distro-Hopping würde nie ein Ende finden, kam ich abrupt bei Silverblue zum Stehen. Ich war ein paar Monate mit OpenSUSE Tumbleweed glücklich gewesen, aufgrund des Touchscreens meines Laptops war meine Desktopumgebung Gnome, da keine andere Desktopumgebung Touchinput derartig gut unterstützt wie Gnome.

Dann las ich einiges über Fedora Silverblue und das Konzept packte mich sofort, was dazu führte, dass OpenSUSE die erste Distribution (auf dem Desktop) wurde, die ich nicht aufgrund einer Fehlfunktion oder eine kaputt konfigurierten Installation verließ. Nun, ich merkte schnell, dass so ganz Flatpak only dann doch nicht geht. Ich erinnere mich noch gut an mein Erstaunen, als ich bemerkte, dass git nicht vorinstalliert war. Damit fingen dann die layerd rpm’s an zu wachsen. Rebooten störte mich nicht, mein Lappi ist ja schnell. Vorerst. Irgendwann setzte ich mich dann mit dem Powertool Toolbox auseinander, welches meine layered rpm’s schnell auf git, dino, epson driver und zsh reduzierte.

Toolbox ist ein Layer für Podman Container, der für eine einfacheres Handling und eine bessere Integration in das Hostsystem sorgt. USB-Geräte und das HOME-Verzeichnis integrieren sich nahtlos in die Umgebung und per dnf lassen sich Pakete wie in jedem normalen Fedora installieren. Viel simpler könnte Bedienung auch nicht sein, ein einfaches

toolbox enter

lässt einen den Container betreten. Beim ersten Mal fragt toolbox einen direkt, ob man einen neuen Container erstellen möchte. Sofern man dies bejaht, wird man anschließend gefragt, ob man ein 500MB großes Fedora Image herunterladen möchte. Bejaht man dies ebenfalls, wird das Image gedownloadet und anschließend der Container erstellt und betreten.

Dass man sich in der Toolbox befindet, erkennt man, sofern man die Standardshell Bash nutzt, an einem farbigen „Diamanten“ (steht so in den Docs) sowie dem geänderten Commandprompt. Begrüßt wird man von einem netten Text, der einen auf die Dokumentation verweist. Das aktuelle Verzeichnis wird dabei direkt übernommen.

Mit

toolbox create <containername>

lassen sich ganz einfach weitere Container initialisieren, welche dann mit

toolbox enter <containername>

betreten werden können.

Auf diese Art und Weise heruntergeladenen Images und gestartete Container lassen sich mit

toolbox list

anzeigen, worauf man sie dann mit

toolbox rm <containerid>

und

toolbox rmi <imageid>

entfernen kann.

Das waren im Prinzip auch schon die Basics. Auch wenn toolbox generell mit jedem OCI-Image funktionieren könnte, wird aktuell das Label LABEL com.github.containers.toolbox="true" vorausgesetzt, wodurch für andere Images diverse Vorarbeiten benötigt werden. Obwohl es diverse Projekte dazu gibt, beispielsweise hier, gibt es mit Distrobox eine bessere Lösung, die noch mehr kann als toolbox.

Distrobox kann über ein Installscript installiert werden, entweder systemweit mit sudo (das funktioniert auf Fedora Silverblue nicht) oder in ~/.local/bin .

Installation mit sudo:

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh

und ohne:

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- -p ~/.local/bin

Der Syntax ist sehr ähnlich zu Toolbox, erstellt werden die Container mit distrobox-create und distrobox-enter. Distrobox kann auf Basis von Podman oder Docker laufen, eines von beiden muss vorher installiert sein. Standardmäßig nutzt auch Distrobox Fedora, soweit also nichts Aufregendes. Distrobox bietet jedoch deutlich mehr als Toolbox, unter anderem die (einfache) Nutzung aller möglichen OCI-Images. Mit

distrobox-create –name <irgendwas> --image <oci-image>

lässt sich eine Distrobox auf Basis irgendeines OCI-Images erstellen, welche dann mit

distrobox-enter –name <irgendwas>

betreten werden kann.

Bsp:

Mit

distrobox list

lassen sich die Container listen und mit

distrobox rm <containerid>

entfernen.

Soweit so gut. Der größte Vorteil von Distrobox ist für mich jedoch der Export grafischer Anwendungen. Mit bash distrobox export –app <package> kann aus der Box heraus eine App in die Desktopumgebung integriert werden und so nutzbar gemacht werden. Ich nutze das beispielsweise, um Pycharm in Arch zu installieren und so von aktuellster Software zu profitieren, ohne ein Paket auf dem Hostsystem zu installieren oder mich mit den Schwierigkeiten einer Flatpakinstallation auseinanderzusetzen.

Sowohl Distro- als auch Toolbox bieten wirklich gute Möglichkeiten sich sein System schlank zu halten und dabei gleichzeitig schnell und effizient Tools zu installieren, zu verwalten und auch einfach wieder zu entfernen.