Leserartikel Entfessle Linux: Mit Distrobox Grenzenlosigkeit erleben

kim88

Commander
Registriert
Sep. 2016
Beiträge
2.075

Was ist Distrobox?​

Distrobox ist ein Tool, das es Ihnen ermöglicht, verschiedene Linux-Distributionen innerhalb deines aktuellen Linux-Systems zu betreiben, ohne dass Du dafür eine virtuelle Maschine benötigst. Es nutzt die Technologie von Linux-Containern, ist aber darauf ausgerichtet, mehr Benutzerfreundlichkeit und Flexibilität zu bieten. Distrobox funktioniert sowohl in Kombination mit Docker, podman und auch lilipod.

Im Grunde kann man sich Distrobox ein bisschen wie das Windows Subsystem für Linux (WSL) vorstellen.

Was sind die Vorteile von Distrobox gegenüber einer virtuellen Maschine?​

Integration
Distrobox integriert sich nahtlos in dein bestehendes System. Du kannst auf Dateien Deines Hauptsystems zugreifen und Programme ausführen, als wären sie Teil deines Hauptbetriebssystems.

Ressourceneffizienz
Distrobox ist ressourcenschonender als eine vollständige virtuelle Maschine, da es Container-Technologie verwendet. Du kannst also problemlos mehrere Distributionen gleichzeitig laufen lassen, ohne das du einen High-End Prozessor mit umfangreichem Arbeitsspeicher benötigst.

Benutzerfreundlich
Distrobox ist zwar ein Kommandozeilenprogramm. Die Nutzung ist aber sehr simpel und man muss keine Kenntnisse über Container Technologie haben. Distrobox macht hier die ganze Magie selbstständig im Hintergrund.

Aber hej. Wer will hier schon theoretisches «Bla Bla» lesen. Schauen wir uns ein Real-Life Beispiel an. Ich experimentiere zurzeit mit openSUSE Micro OS bzw. mit openSUSE Aeon (der Gnome Variante von Micro OS).
Hierbei handelt es sich um ein unveränderliches System. Sprich man hat nur eine Kernel, GNU Tools, Gnome als Read-Only Snapshot installiert (der sich übrigens auch automatisch aktualisiert).

Wenn man Anwendungen installieren will. Also z.b. Browser, Office, Taschenrechner usw ist man auf Flatpak (ist voreingerichtet) angewiesen.

Nun gibt es aber auch viel Software die nicht als Flatpak zur Verfügung steht. Und es gibt Software die man nicht unbedingt als Flatpak nutzen möchte (z.b. Visual Studio Code).

Mein Plan ist folgender. Ich werde eine Ubuntu Distrobox erstellen, dort Visual Studio Code als DEB Paket installieren. Und Visual Studio Code in meinem openSUSE Hostsystem verfügbar machen.

Starten mit Distrobox​

Unter openSUSE Aeon ist distrobox bereits vorinstalliert. Bei den meisten Distributionen wird das nicht der Fall sein.
Falls Distrobox nicht in deinen Paketquellen verfügbar ist, kannst du Distrobox wie hier beschrieben installieren.
Ist Distrobox einmal installiert starten wir nun mit dem Terminal.

Als ersten Schritt laden wir ein Ubuntu LTS. Alle verfügbaren Distrobutionen und Versionen die geladen werden können findet man hier: https://distrobox.it/compatibility/#containers-distros

Unser Ubuntu ist schnell erstellt. Nachfolgender Befehl lädt uns einen Ubuntu 22.04 Container herunter und erstellt ihn unter dem Namen «Ubuntu».

Bash:
distrobox-create --image ubuntu:22.04 --name Ubuntu

Mit «distrobox enter Ubuntu» loggen wir uns in Ubuntu ein.

Bildschirmfoto vom 2023-11-22 16-55-34.png



Danach werden noch ein paar Einstellungen (automatisch gesetzt) und wir befinden uns in einer Ubuntu Shell. In dieser Shell können wir alles tun was man mit Ubuntu tun kann. Z.b. per apt neofetch installieren:

Dazu geben wir einfach den entsprechenden Befehl ein:

Bash:
sudo apt install neofetch

Und können danach neofetch ausführen.

Bildschirmfoto vom 2023-11-22 16-57-36.png


Da dieses Distrobox-Ubuntu ein Container ist. Haben wir damit Zugriff auf das normale Dateisystem und können nun über das Hostsystem unserem openSUSE die DEB Datei von Visual Studio Code herunter.

Danach navigieren wir mit cd Downloads/ zu unserem Download Ordner und installieren Visual Studio Code über apt.
Bildschirmfoto vom 2023-11-22 17-01-04.png


Nun haben wir Visual Studio Code in unserem Container installiert. Nach der Installation müssen wir das Programm noch in unser openSUSE Hostsystem exportieren.

Dazu nutzen wir folgenden Befehl:

Bash:
distrobox-export --app code

Dieser Befehl erstellt nun eine .desktop Datei unter openSUSE mit der man das Programm direkt öffnen kann. Die Datei wird so erstellt das im App Grid sichtbar ist, dass Visual Studio Code in einem Ubuntu Container läuft.

Bildschirmfoto vom 2023-11-22 17-05-13.png

Möglichkeiten ohne Ende​

Mit Distrobox hat man im Grunde unendliche Möglichkeiten und kann so ziemlich alles installieren was man haben möchte. Man findet eine Software nur im AUR? Kein Problem mit Distrobox kurz einen ArchLinux Container erstellen -> AUR Paket installieren und Problem ist gelöst.

Es gibt für eine Software nur ein Fedora Paket? Auch kein Problem, kurz einen Fedora Container installieren und Software installieren.

Distrobox ist noch ein relativ unbekanntes aber bereits sehr mächtiges Tool. Das wohl mit der zunehmenden Verbreitung von unveränderbaren Systemen eine immer grössere Rolle in unserem Linux Alltag einnehmen wird.
 
  • Gefällt mir
Reaktionen: Toadie, TheHille, knoxxi und 15 andere
Oh, danke für den Artikel. Ist komplett an mir vorbei gegangen.

Dann kann ich mir auch sparen, mir mal blendOS anzusehen

kim88 schrieb:
AUR Paket installieren und Problem ist gelöst.
ist das nicht immer so? :D
 
  • Gefällt mir
Reaktionen: Natriumchlorid und kim88
madmax2010 schrieb:
Dann kann ich mir auch sparen, mir mal blendOS anzusehen

In blendOS ist das aber wohl noch besser integriert:

Can I use an app installed from a distribution on the base OS itself?

Indeed, any apps or CLI utils/binaries you install would be available instantaneously on the base OS itself, so for example, you could use a CLI tool installed in a container directly from the host's terminal, unlike other implementations such as Distrobox.
 
Hey, danke sehr für den Artikel.
Kann sich als sehr nützlich erweisen, wenn ich unterschiedliche Distros für die LPIC anschauen möchte. :)
 
Wie hält man den Zoo aktuell? Wenns dumm läuft hast 30 Container die du updaten musst
 
  • Gefällt mir
Reaktionen: Tanzmusikus und konkretor
@konkretor das ist automatisiert.

Ausserhalb eines Containers kannst du "distrobox-upgrade --all" Kommando nutzen.

Der Befehl macht nichts anderes als von Container zu gehen und dort über den jeweiligen Paketmanager ein Update durchzuführen.

Es gibt da auch einen systemd Service mit dem man das automatisieren kann.

Was man bedenken muss, man muss OS Upgrades weiterhin manuell machen. Also wenn man nun ein Ubuntu 23.10 Container nutzt. Sollte man den irgendwann im April/Mai nächsten Jahres auf 24.04 aktualisieren.
 
  • Gefällt mir
Reaktionen: Tanzmusikus, AlphaKaninchen, Nefzul und 4 andere
Zurück
Oben