Εάν χρειάζεστε συχνά να τρέχετε/δοκιμάζετε εφαρμογές από διάφορες διανομές 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 με τα δικά του:
Και για να το εγκαταστήσουμε (στο container βέβαια!), δίνουμε:
dnf install firefox
Μετά την εγκατάσταση απλώς τρέχουμε το Firefox του Fedora με την τυπική εντολή:
firefox
Και voila, ο Firefox 98 του επερχόμενου Fedora 36 τρέχει μέσα στο Gnome του Ubuntu 20.04 μου σαν να είναι κανονική εφαρμογή του Gnome:
Όταν θέλουμε να βγούμε από το 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 σε δράση
- Συνδεθείτε ή εγγραφείτε για να σχολιάσετε