Distrobox: Όλες οι διανομές Linux (και οι εφαρμογές τους) στο Τερματικό σου

dimitris | Τετ, 03/16/2022 - 15:05 | 8'

Εάν χρειάζεστε συχνά να τρέχετε/δοκιμάζετε εφαρμογές από διάφορες διανομές Linux, τότε καλό είναι να δείτε το Distrobox.  

Το Distrobox είναι ένα εργαλείο που χρησιμοποιεί το docker για να εγκαθιστά linux containers από το Τερματικό και να τρέχει ολόκληρες παραθυρικές εφαρμογές μέσα από το guest λειτουργικό. Θα πείτε, γιατί να μην τρέξω το guest linux μέσα σε ένα VirtualBox VM; Απλά, γιατί με το Distrobox τα containers έχουν πλήρη και άμεση πρόσβαση στο σύστημά μας, δηλαδή το HOME φάκελο, περιφερειακά, γραφικά και ήχο. Και επιπλέον, αυτός ο τρόπος καταναλώνει λιγότερους πόρους από το σύστημα μας από ότι θα έκανε το VirtualBox.

Εγκατάσταση distrobox

Τέσπα, αν σας ενδιαφέρει, η εγκατάστασή του Distrobox είναι πολύ απλή, με τα παρακάτω βήματα.

Πρώτα, τα προαπαιτούμενα (για το docker) με τις εντολές:

# Εγκατάσταση docker
sudo apt install docker.io curl -y

# Ενεργοποίηση docker
sudo systemctl enable --now docker

# Προσθήκη του τρέχοντος χρήστη στην ομάδα docker
sudo usermod -aG docker $USER

# Ενεργοποίηση του docker group
newgrp docker

Έπειτα, για την εγκατάσταση του Distrobox υπάρχουν 2 τρόποι:

α) κατεβάζετε και τρέχετε το εργαλείο εγκατάστασης με sudo σύμφωνα με τις οδηγίες

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

β) αν προτιμάτε να αποφύγετε το sudo και να γίνει η εγκατάσταση στο ~/.local/bin που είναι το default ή όπου αλλού θέλετε εσείς:

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sh -s -- --prefix ~/.local

Μόλις τελειώσει η εγκατάσταση, όλες οι εντολές του Dockerbox θα βρίσκονται στο ~/.local/bin. Αν δεν έχετε το φάκελο εκείνο στο PATH, τον προσθέτετε με την εντολή:

PATH=$PATH:~/.local/bin

Γνωριμία με το distrobox

Το distrobox αποτελείται από 6 εντολές

  • distrobox-create – για δημιουργία container
  • distrobox-enter – για να μπούμε σε ένα container
  • distrobox-list – για να δούμε όλα τα containers του distrobox
  • distrobox-rm – για να διαγράψουμε ένα container
  • distrobox-stop – για να σταματήσουμε ένα container που τρέχει
  • distrobox-init – για αρχικοποίηση container (δεν το χρησιμοποιούμε εμείς)
  • distrobox-export – για χρήση μέσα από το container, αν π.χ. θέλουμε να εξάγουμε apps και υπηρεσίες στο host

Δημιουργία και εκκίνηση container

Το πρώτο βήμα είναι να εγκαταστήσουμε ένα από τα υποστηριζόμενα container images.

Για παράδειγμα, για κατεβάσουμε το Fedora 36 από το docker αρκεί η εντολή:

distrobox create --image docker.io/library/fedora:36 --name f36

Έπειτα για να το τρέξουμε:

distrobox enter --name f36

Σημείωση: Αν το image δεν είναι από το toolbox, η παραπάνω εντολή θα αργήσει λίγο την πρώτη φορά...

Σε κάθε στιγμή, μπορούμε να δούμε τα logs:

docker logs -f f36

Αυτό ήταν!

Τι εννοείς “αυτό ήταν” ;

Εννοώ ότι είμαστε πλέον μέσα στο Fedora (ή όποιο άλλο container εγκαταστήσαμε) όπως γίνεται αντιληπτό και από την αλλαγή του linux prompt. Και μπορούμε πλέον να τρέξουμε όποια εντολή/app/πρόγραμμα/εφαρμογή έχει το Fedora από το δικό μας Τερματικό. Βέβαια, τα περισσότερα containers δεν έχουν προεγκατεστημένα πολλά πράγματα μέσα αλλά μπορούμε να τους εγκαταστήσουμε τις εφαρμογές που θέλουμε. Π.χ. τo Fedora που μόλις εγκαταστήσαμε δεν έχει κάποιο GUI όπως το GNOME κλπ. Αλλά αυτό δεν είναι πρόβλημα γιατί μπορούμε να εγκαταστήσουμε κυριολεκτικά οποιαδήποτε εφαρμογή υπάρχει στα αποθετήρια της διανομής (και όχι μόνο).

Για παράδειγμα, στο Fedora, με την εντολή dnf search <appname> ψάχνουμε για κάποια εφαρμογή 'appname' στα αποθετήρια της διανομής, ας πούμε για τον Firefox:

dnf search firefox

Και θα μας απαντήσει το dnf με τα δικά του:

Fedora firefox

Και για να το εγκαταστήσουμε (στο container βέβαια!), δίνουμε:

dnf install firefox

Μετά την εγκατάσταση απλώς τρέχουμε το Firefox του Fedora με την τυπική εντολή:

firefox

Και voila, ο Firefox 98 του επερχόμενου Fedora 36 τρέχει μέσα στο Gnome του Ubuntu 20.04 μου σαν να είναι κανονική εφαρμογή του Gnome:

firefox on Fedora 36 running on Ubuntu 20.04 host

Όταν θέλουμε να βγούμε από το container:

exit

Και η ίδια διαδικασία ισχύει για κάθε εφαρμογή από οποιαδήποτε υποστηριζόμενη container διανομή! Για παράδειγμα, αν θέλατε τον Firefox του Arch:

# Εγκατάσταση arch:

distrobox create --image archlinux:latest --name arch

# Εισοδος στο arch container

distrobox enter --name arch

# Εγκατάσταση Firefox (του Arch)

sudo pacman -S firefox

# Τρέξιμο Firefox (του Arch)

Με άλλα λόγια, με το Distrobox μπορείτε να εγκαθιστάτε και να δοκιμάζετε οποια εφαρμογή θέλετε από οποιαδήποτε (σχεδόν) διανομή μέσα από το κανονικό Linux σας. Και αυτή η εφαρμογή θα συμπεριφέρεται σαν οποιαδήποτε κανονική εφαρμογή του host συστήματος, δηλαδή θα βλέπει το home σας κλπ, χωρίς ιδιαίτερες ρυθμίσεις. Δηλαδή έχετε ένα mix-and-match σύστημα για να τρέχετε παραθυρικές εφαρμογές από όποια (σχεδόν) διανομή linux θέλετε.

Βίντεο με το distrobox σε δράση

 

Δώσε αστέρια!

MO: 4.2 (ψήφοι: 6)