DEB-Dateien auf Arch? Mit diesem Tool jede Anwendung auf jeder Linux-Distro ausführen
Linux
2023-12-13T12:01:20Z
Schnelle Links
Das Wichtigste in Kürze
- Distrobox ermöglicht es Ihnen, Anwendungen verschiedener Linux-Distributionen auf Ihrem eigenen Computer auszuführen, während sie gleichzeitig isoliert bleiben.
- Es integriert Container mit dem Host-Computer, so dass Anwendungen innerhalb des Containers auf Ihr Home-Verzeichnis zugreifen und Konfigurationsdateien gemeinsam nutzen können.
- Distrobox gibt Ihnen die Möglichkeit, Anwendungen zu installieren und auszuführen, die in Ihrer eigenen Distribution nur schwer zu finden oder zu installieren sind.
Sind Sie frustriert über die fehlende oder schleppende Unterstützung einer Anwendung für Ihre bevorzugte Distro? Wie von Zauberhand führt Distrobox Anwendungen von verschiedenen Linux-Distributionen direkt auf Ihrem Linux-Computer aus. Sie laufen auf Ihrem Computer und sind doch in ihrer eigenen Distribution enthalten. Wir zeigen Ihnen, wie es funktioniert.
Das Problem mit normalen Containern
Container sind eine Form der virtuellen Maschine. Eine herkömmliche virtuelle Maschine enthält eine vollständige Installation eines Betriebssystems. Oft verfügen sie auch über eine Desktop-Umgebung, und Sie können sie wie einen physischen Computer verwenden.
Ein Container hingegen enthält nur ein Minimum an Betriebssystem und Tools zur Ausführung der Programme, die der Container unterstützen soll.
Da Container leichtgewichtig und rechnerisch billiger als herkömmliche virtuelle Maschinen sind, können sie sehr schnell gestartet und programmatisch gesteuert werden. Skripte können ihre Erstellung, Verwendung, Abschaltung und Entfernung steuern. Dadurch sind sie ideal für Entwicklungs- und Testumgebungen und bieten automatische Skalierbarkeit für Cloud-basierte Dienste.
Genau wie bei virtuellen Maschinen sind die Anwendungen in Containern vom Hostsystem isoliert. Das ist in den meisten Szenarien eine gute Sache, aber es ist ein Hindernis, wenn Sie ein Programm, das in einem Container installiert ist, so verwenden möchten, als wäre es auf Ihrem eigenen physischen Computer installiert.
Wie Distrobox sich unterscheidet
Distrobox ist eine Möglichkeit, Container zu erstellen und zu verwalten, die in den Host-Computer integriert sind. Sie können innerhalb des Containers Programme ausführen, die auf dem Desktop des Host-Computers erscheinen. Diese Anwendungen können auf Ihr Home-Verzeichnis auf dem Host-Computer zugreifen, so dass sie Dateien in Ihrem tatsächlichen Home-Verzeichnis und nicht innerhalb des Containers speichern können.
Es ermöglicht zwei Kopien einer Anwendung, eine auf Ihrem physischen Computer und eine im Container, die Konfigurationsdateien des Host-Computers gemeinsam zu nutzen. So kann zum Beispiel ein Browser im Container die Lesezeichen nutzen, die in den Konfigurationsdateien auf Ihrem physischen Computer gespeichert sind.
Distrobox-Container profitieren auch vom Hardware-Pass-Through. Wenn Sie z. B. ein USB-Gerät anschließen, kann der Container es ebenfalls sehen.
Wenn Sie einen Distrobox-Container erstellen, können Sie aus einer großen Auswahl an Linux-Distributionen wählen. Und da Sie Anwendungen über den Paketmanager des Containers in den Container installieren können, können Sie Schwierigkeiten überwinden, die bei der direkten Installation eines Pakets auf Ihrem eigenen Computer auftreten könnten.
Vielleicht ist ein Paket auf der von Ihnen gewählten Distribution bekanntermaßen schwer zu installieren, oder die Version in den Repositories ist veraltet oder gar nicht vorhanden. Vielleicht können Sie ein Flatpak für diese Anwendung finden, oder Sie sind froh, wenn Sie sie aus dem Quellcode bauen können.
Distrobox nimmt Ihnen die Mühe ab und gibt Ihnen eine Möglichkeit, Anwendungen zu installieren und auszuführen, die schwer zu finden oder anderweitig problematisch für Ihre Distribution sind.
Wie man Distrobox installiert
Distrobox verwendet entweder Docker oder Podman als das zugrundeliegende Container-Management-System. Wir werden Docker verwenden. Wenn Sie Docker noch nicht auf Ihrem Computer haben, müssen Sie es installieren.
Installation von Docker
Docker ist in den Repositories der wichtigsten Distributionen verfügbar. Um Docker unter Ubuntu zu installieren, verwenden Sie diesen Befehl. Das "io" wurde dem Paketnamen hinzugefügt, um es von einer anderen Anwendung in den Ubuntu-Repositories zu unterscheiden, die bereits den Namen "Docker" verwendet
sudo apt install docker.io
Auf Fedora lautet der Befehl:
sudo dnf install docker
Unter Manjaro müssen Sie Folgendes eingeben:
sudo pacman -S docker
Bei allen Distributionen müssen Sie eine Benutzergruppe erstellen und sich selbst zu dieser Gruppe hinzufügen. Dadurch können Sie Docker ohne Root-Zugriff verwenden, was sicherer ist, als Docker Root-Zugriff auf Ihr System zu geben.
Wir erstellen die Gruppe mit dem Befehl groupadd.
sudo groupadd Docker
Möglicherweise hat Docker die Gruppe bereits für Sie erstellt. Wenn das der Fall ist, wird Ihnen mitgeteilt, dass sie bereits existiert. In jedem Fall müssen wir Sie mit dem Befehl usermod zu dieser Gruppe hinzufügen.
sudo usermod -aG docker $USER
Sie müssen sich ein- und ausloggen, um Ihre Gruppenmitgliedschaft zu aktivieren.
Installation von Distrobox
Die Installation von Distrobox ist noch einfacher als die Installation von Docker. Unter Ubuntu lautet der entsprechende Befehl:
sudo apt install distrobox
Unter Fedora geben Sie ein:
sudo dnf install distrobox
Unter Manjaro lautet die Syntax:
sudo pacman -S distrobox
Einen Distrobox-Container erstellen
Wir sind nun bereit, einen Container zu erstellen. Dieser Schritt erfordert eine Image-Datei. Der Distrobox-Befehl lädt das Image für uns herunter, daher müssen wir die Webadresse kennen, unter der sich das Image befindet.
Wir können das gewünschte Image aus der Liste auf der Distrobox-Website auswählen. Die Liste ist alphabetisch nach Distributionsnamen geordnet, beginnend bei AlmaLinux und endend bei Void Linux.
Viele Distributionen sind in mehreren Versionen erhältlich. Fedora ist zum Beispiel in den Versionen 35, 36, 37, 38 und 39 erhältlich, und auch Fedora Rawhide ist verfügbar. Versionen mit dem Namenszusatz "toolbox" enthalten eine Reihe von Standardprogrammen. Die Versionen ohne "toolbox" sind leichtgewichtige Images.
Wir werden einen Arch Linux-Container erstellen. Kopieren Sie die Webadresse des Images, das Sie verwenden wollen, und fügen Sie sie in den folgenden Befehl ein.
distrobox create -i quay.io/toolbx-images/archlinux-toolbox:latest -n "Arch-Db-1"
Wir verwenden den Befehl Distrobox create, um einen Container zu erstellen. Die Option -i (image) teilt Distrobox mit, welches Image verwendet werden soll. Die Option -n (name) legt einen Namen für den Container fest. Dieser wird auch der Hostname für den virtuellen Computer innerhalb des Containers.
Sie werden aufgefordert, das Image auf Ihren Computer herunterzuladen. Drücken Sie Y und die Eingabetaste.
Alle Downloads, die wir ausprobiert haben, waren erstaunlich schnell. Wenn Sie zur Eingabeaufforderung zurückkehren, verwenden Sie den Befehl Distrobox enter, um unseren neuen Arch-Linux-Container zu starten und einzugeben.
distrobox enter Arch-Db-1
Beim ersten Start des Containers müssen noch einige Einstellungen vorgenommen werden. Auf unserem Testrechner dauerte dies ein bis zwei Minuten.
Wenn Sie zur Eingabeaufforderung zurückkehren, werfen Sie einen Blick auf diese. Es wird der Name des Containers angezeigt, den Sie erstellt und eingegeben haben. Sie befinden sich nun in einem Arch Linux Container.
Verwendung von Anwendungen innerhalb eines Containers auf dem Host
Um das zu beweisen, werden wir den Arch-Paketmanager pacman verwenden, um neofetch zu installieren.
sudo pacman -S neofetch
Die Ausführung von neofetch zeigt, dass wir uns in einer Instanz von Arch Linux befinden, die auf einer virtuellen VirtualBox-Maschine läuft, von der wir wissen, dass sie mit Ubuntu läuft.
Wir können jede Anwendung in unserem Container installieren, entweder aus den Arch-Repositories oder aus dem AUR, und sie auf unserem Host-Computer ausführen.
Die Ausführung des Befehls ls zeigt das Home-Verzeichnis unseres Ubuntu-Host-Computers an.
Wir haben auf unserem Host-Computer eine Datei namens "MyUbuntuDocument.md" erstellt, die in unserem Container sichtbar und zugänglich ist.
Grafische Anwendungen innerhalb eines Containers auf dem Host verwenden
Installieren und starten wir nun eine Anwendung innerhalb unseres Arch-Containers, die eine grafische Oberfläche verwendet.
sudo pacman -S opera
Sobald die Anwendung installiert ist, können wir "opera" eingeben, um den Browser von unserer Arch Linux-Eingabeaufforderung aus zu starten. Mit Distrobox können wir das Programm jedoch auch von außerhalb des Containers starten, nämlich von der Eingabeaufforderung unseres Host-Computers aus.
distrobox-enter -T -n Arch-Db-1 -- "opera"
Die Option -T (no tty) unterdrückt die Erstellung eines neuen Terminalfensters. -der Befehl n (Name) teilt Distrobox mit, in welchem Container der Befehl gesucht werden soll. Die Option "--" (end of arguments) ist ein Flag, das Distrobox mitteilt, dass alles, was folgt, Teil des Befehls ist, der gestartet werden soll.
Opera wird gestartet und läuft auf Ihrem Desktop, als ob Sie es auf dem Host-Computer installiert hätten.
Um das Leben einfacher zu machen, könnte man den Befehl zum Starten der Anwendung als Alias speichern oder in eine Desktop-Datei auf dem Host-Computer einfügen.
Es ist klar, dass die gestartete Anwendung Zugriff auf Ihren Host-Computer hat. Ein Blick in das Verzeichnis "~/.config" auf dem Host-Computer zeigt, dass ein Verzeichnis "opera" erstellt wurde. Der Browser speichert seine Einstellungen auf dem Ubuntu-Host.
Andere nützliche Befehle
Um einen Container zu verlassen, geben Sie "exit" ein und drücken Sie "Enter"
Sie werden sehen, dass die Eingabeaufforderung zu der Ihres Host-Computers zurückkehrt. Der Container läuft jedoch weiter. Wenn Sie den Container beenden wollen, verwenden Sie den Befehl stop.
distrobox stop Arch-Db-1
Sie müssen bestätigen, dass Sie den Container wirklich stoppen wollen.
Um zu sehen, welche Container Sie erstellt haben, verwenden Sie den Befehl list.
distrobox auflisten
Die Farbe wird verwendet, um hervorzuheben, welche Container ausgeführt werden und welche nicht.
Sie können einen Container mit dem Befehl distrobox rm entfernen, d.h. löschen.
distrobox rm OpenSuse-1
Jede Anwendung, von jeder Distribution
Da Sie beliebig viele Container erstellen können, von denen jeder eine andere Linux-Distribution enthalten kann, und jeder Container eine beliebige Anzahl von Anwendungen enthalten kann, sind die Kombinationsmöglichkeiten endlos.
Es gibt keinen Grund mehr, auf eine Anwendung einer beliebigen Distribution zu verzichten.