Website-Suche

So integrieren Sie eine beliebige Linux-Distribution in ein Terminal mit Distrobox


Distrobox ist ein kostenloses Open-Source-Tool, das es uns ermöglicht, die Userlands von Linux-Distributionen zu integrieren. Unter der Haube verwendet es Docker oder Podman, um Container zu erstellen, und integriert sie mit dem Host, indem es den Zugriff auf den grafischen Server, das HOME-Benutzerverzeichnis und USB-Geräte teilt. In diesem Tutorial sehen wir, wie Sie Distrobox auf den am häufigsten verwendeten Linux-Distributionen installieren und verwenden.

In diesem Tutorial lernen Sie:

  • So installieren Sie Distrobox auf den am häufigsten verwendeten Linux-Distributionen
  • So integrieren Sie eine Distribution mit Distrobox
  • So geben Sie einen Distrobox-Container ein und verwenden ihn
  • Exportieren von Anwendungen aus einem Container
  • Auflisten, Stoppen und Entfernen vorhandener Container

Einleitung

Distrobox funktioniert ähnlich wie toolbox, ist aber mit einer breiteren Palette von Distributionen kompatibel (die aktuelle Liste finden Sie auf GitHub) und kann sowohl Podman als auch Docker unter der Haube verwenden, während toolbox nur erstere unterstützt. Distrobox zielt darauf ab, eine nahtlose Integration von Containern mit dem Host-System zu erreichen: Der grafische Stack, das Benutzer-HOME-Verzeichnis und die USB-Speichergeräte werden in der Tat standardmäßig mit Containern geteilt. Aus diesem Grund ist Distrobox, wenn Isolation und Sicherheit die primären Ziele sind, nicht das geeignete Tool.

Installation

Alle am häufigsten verwendeten Linux-Distributionen enthalten Distrobox in ihren offiziellen Repositories, daher ist die Installation nur eine Frage der Verwendung des entsprechenden Paketmanagers. Hier sind die genauen Befehle, die wir verwenden möchten:

Erste Schritte

Der einfachste Weg, eine Distribution mit Distrobox zu erstellen und zu integrieren, ist die Verwendung des create-Befehls ohne Option oder Argument:

distrobox create

Wenn Distrobox auf diese Weise aufgerufen wird, erstellt es einen Container mit dem Standardimage, das über die Variable container_image_default in der Distrobox-Konfigurationsdatei angegeben wird. Dies entspricht in den meisten Fällen der Host-Distribution. Um eine bestimmte Distribution (und optional eine Release-Version) als Ziel zu verwenden, übergeben wir ihren Namen als Argument an die Option -i (kurz für --image). Um beispielsweise einen Container auf Basis von Archlinux zu erstellen, würden wir Folgendes ausführen:

distrobox create -i archlinux

Wenn das Image der Zieldistribution nicht lokal vorhanden ist, fragt uns Distrobox, ob wir es herunterladen möchten:

Image archlinux not found.
Do you want to pull the image now? [Y/n]: y

Um interaktive Eingabeaufforderungen wie die obige zu vermeiden, können wir dem Befehl die Option -Y (--yes) hinzufügen. Sobald der Download abgeschlossen ist, erstellt Distrobox einen Container basierend auf dem Bild und benennt ihn standardmäßig nach der Distribution selbst (wir können mit der Option -n einen alternativen Namen angeben).

Wenn wir einen Container erstellen, haben wir die Möglichkeit, eine Liste von zusätzlichen Paketen anzugeben, die installiert werden sollen, indem wir die Option --additional-packages verwenden. Im folgenden Beispiel erstellen wir einen Container basierend auf Archlinux und geben an, dass wir die Pakete git und vim installieren möchten:

distrobox create -i archlinux --additional-packages "vim git"

Angeben eines alternativen HOME für den Container

Wie bereits erwähnt, teilen sich Container, die mit Distrobox erstellt wurden, das HOME-Verzeichnis mit dem Benutzer, der die Distrobox-Befehle startet. Das bedeutet, dass ein Programm, das innerhalb des Containers ausgeführt wird, ihn mit seinen eigenen Konfigurationsdateien überladen kann. Um dies zu vermeiden, können wir mit der Option -H (--home) ein alternatives HOME für den Container angeben. Hier ist ein Beispiel:

distrobox create -i archlinux -H ~/container-home

Das Zielverzeichnis wird automatisch erstellt, wenn es nicht existiert.

Betreten des Containers

Sobald ein Container fertig ist, verwenden wir den Befehl enter und übergeben seinen Namen als Argument, um ihn zu verwenden. Um einen Container mit dem Namen "archlinux" einzugeben, würden wir Folgendes ausführen:

distrobox enter archlinux

Wenn wir zum ersten Mal einen Container betreten, führt die Distrobox einige vorbereitende Operationen durch. Sobald die Container-Einrichtung abgeschlossen ist, ändert sich die Eingabeaufforderung der Shell, um die Tatsache widerzuspiegeln, dass wir in der Container-Umgebung arbeiten:

📦[doc@archlinux ~]$

Wir können jetzt Befehle ausführen, als ob wir das System nativ verwenden würden. Da in diesem Fall die Zieldistribution Archlinux ist, würden wir zum Synchronisieren von Repositories Folgendes ausführen:

📦[doc@archlinux ~]$ sudo pacman -Sy

Da der Container Zugriff auf den grafischen Stack des Hostsystems hat, können wir sowohl Befehlszeilen- als auch grafische Anwendungen darin installieren und verwenden. Um beispielsweise "Code" (die Open-Source-Version des VScode-Editors) zu installieren, würden wir Folgendes ausführen:

📦[doc@debian-bullseye ~]$ sudo pacman -S code

Sobald die Anwendung installiert ist, können wir sie über die Befehlszeile starten:

📦[doc@archlinux ~]$ code

Als Alternative zur manuellen Eingabe des Containers jedes Mal, wenn wir einen Befehl darin ausführen möchten, können wir die folgende Tastenkombination verwenden:

distrobox enter archlinux -- code

Exportieren einer Anwendung

Im vorherigen Beispiel haben wir gesehen, wie einfach es ist, eine Anwendung in einem Container zu installieren und zu starten, der mit Distrobox erstellt wurde. Um eine Anwendung besser in das Host-System zu integrieren, können wir sie jedoch "exportieren".

Im vorherigen Beispiel haben wir den "Code"-Editor installiert, waren aber gezwungen, ihn von der Befehlszeile aus auszuführen, da der Desktop-Launcher nicht im Menü "Anwendungen" des Hostsystems angezeigt wurde. Um dieses Problem zu lösen, können wir die Anwendung mit dem Befehl distrobox-export "exportieren", der innerhalb des Containers ausgeführt werden muss.

Um den "Code"-Editor zu exportieren, würden wir Folgendes ausführen:

distrobox enter archlinux -- distrobox-export --app code

Nach einigen Sekunden sollten wir den Anwendungsstarter im Host-Menü finden:

Um den Export einer Anwendung rückgängig zu machen, fügen wir dem Befehl distrobox-export die Option --delete hinzu. Um den "Code"-Launcher vom Host-System zu löschen, würden wir Folgendes ausführen:

distrobox enter archlinux -- distrobox-export --app code --delete

Verwalten von Distrobox-Containern

Um Container aufzulisten, die mit Distrobox erstellt wurden, können wir den Befehl list verwenden:

distrobox list

In diesem Fall existiert erwartungsgemäß nur ein Container:

ID           | NAME      | STATUS        | IMAGE 
1989f0686c1f | archlinux | Up 29 minutes | docker.io/library/archlinux:latest

Wie wir an der Ausgabe des Befehls sehen können, wird der Container derzeit ausgeführt. Um es zu stoppen, verwenden wir den Befehl stop:

distrobox stop archlinux

Um den Container zu entfernen, verwenden wir schließlich den Befehl rm:

distrobox rm archlinux

Schlüsse

Distrobox ist eine kostenlose Open-Source-Anwendung, die es uns ermöglicht, ein Host-System mit dem Userland unterstützter Linux-Distributionen zu integrieren, indem wir Container verwenden und uns auf Docker oder Podman unter der Haube verlassen. In diesem Tutorial haben wir gesehen, wie man Distrobox auf einigen der am häufigsten verwendeten Linux-Distributionen installiert, wie man Container erstellt und eingibt und wie man Befehle darin ausführt. Wir haben auch gesehen, wie Container-Anwendungen auf das Host-System exportiert werden, und schließlich, wie man mit Distrobox erstellte Container auflistet, stoppt und entfernt.

Verwandte Artikel: