#howto - Installare ed usare Distrobox
Macchina virtuale o installazione su hardware? come testate le vostre distribuzioni? I metodi ormai sono vari in realtà. I container hanno infatti aperto una nuova finestra su questo mondo, consentendo di avviare intere distribuzioni senza appesantire tutto con la virtualizzazione.
In questo panorama si colloca distrobox.
Cos’è
Distrobox è composto da una serie di script sh (POSIX compliant) che automatizza l’utilizzo di docker
o podman
per consentire all’utente di creare dei container all’interno del sistema dove poter testare o eventualmente utilizzare varie distribuzioni.
Il container è fortemente connesso al sistema ospitante e consente anche di utilizzare dispositivi USB, applicazioni grafiche e audio.
Guida all’installazione
Distrobox è supportato ufficilamente da un gran numero di distribuzioni: Ubuntu, Fedora, Silverblue, Archlinux, Suse ecc… Alcune distribuzioni hanno il pacchetto incluso nel proprio package manager. Ma esiste comunque un processo di installazione che non dipende dal package manager, attraverso l’utilizzo di curl.
Dipendenze
Prima di procedere con l’installazione bisogna scegliere se utilizzare podman o docker per l’installazione di distrobox.
Abbiamo già parlato qui dell’installazione di docker, per la par condicio supponiamo invece ora di voler installare podman.
Podman su Ubuntu e derivate
Per installare su Ubuntu e derivate:
apt install podman
Podman su Fedora
Per installare su Fedora:
dnf -y install podman
Silverblue invece ha già il pacchetto preinstallato.
Podman su Archlinux
Per installarlo su Archlinux digitare:
pacman -S podman
Avviare il servizio
Se avete installato docker, ricordatevi di avviare il servizio prima di utilizzare distrobox:
systemctl start docker
Potrebbe essere utile abilitare il servizio all’avvio, così da non dover ogni volta scrivere questo comando per avviare distrobox. Leggete la nostra guida su systemd per sapere come fare.
Installazione
Una volta che si è certi di avere installato e configurato le dipendenze possiamo installarlo semplicemente scrivendo:
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh
Se non si ha accesso ai diritti di amministratore si può utilizzare la variante:
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local
Quest’ultima scelta potrebbe essere più adatta anche per un installazione utente e non globale, sia per una maggiore pulizia che per quei sistemi che hanno un root file system non scrivibile.
Da notare che il percorso ~/.local
può essere personalizzato specificando una cartella diversa dove attuare l’installazione.
Creazione di una “box”
Prima di fiondarci nel comando che creerà una box con la nostra distribuzione, consiglio di creare una home apposita.
mkdir /percorso/della/home/box
Quindi scegliamo la nostra distribuzione, la lista è vasta:
- ubuntu
- fedora
- archlinux
- alpine
- etc…
Sostanzialmente son tutte quelle che potete trovare nella lista ufficiale, sul sito di distrobox. Scegliamo quindi un nome da dare alla nostra installazione.
Scrivendo:
distrobox help
Vedremo una lista di esempi.
Possiamo ora creare la nostra box, supponiamo di ubuntu, con nome distribuzione nella cartella /home/distrobox/sububuntu:
distrobox create --image ubuntu --name distribuzione -H /home/distrobox/sububuntu
NOTA: è importante che il percorso venga dato in maniera assoluta.
Come si può notare quindi si ha il nome dell’immagine introdotto dalla flag --image
, il nome della nostra installazione introdotto dal flag --name
e infine la home introdotta da -H
.
Una volta che la creazione va a buon fine digitiamo:
distrobox enter distribuzione
Specificando quindi alla fine il nome che abbiamo dato precedentemente alla distribuzione, nel nostro caso “distribuzione”. Dopo un po’ di attesa avremo accesso alla nostra distribuzione.
Throubleshoot: problemi di overlay
In alcuni casi va specificato il flag --root
che serve ad avviare distrobox con i permessi di root.
Quest’ultima opzione non è sempre necessaria, aggiungetela se doveste avere problemi di overlay o incompatibilità (ad esempio se usate ecryptfs
). Un tipico errore è:
Error: 'overlay' is not supported over ecryptfs, a mount_program is required: backing file system is unsupported for this graph driver
Per creare un box con i permessi da root va quindi digitato:
distrobox create --image ubuntu --name distribuzione -H /home/distrobox/sububuntu --root
Per entrarci:
distrobox enter distribuzione --root
Ricordiamoci quindi di inserire la flag per ogni altro comando.
Lista dei nostri box
Possiamo fare una lista delle box attualmente installate digitando:
distrobox-list
In realtà questo comando a sua volta utilizza un processo per identificare quali container di podman o docker son installati, giusto per farvi un idea potreste dare il comando (se state usando podman):
podman ps -a --no-trunc --format "{{.ID}}|{{.Image}}|{{.Names}}|{{.State}}|{{.Labels}}|{{.Mounts}}"
E notare che l’output dovrebbe essere simile, ovviamente solo le righe che contengono “distrobox” son quelle che cerchiamo.
Eliminare un box
Per eliminare un box basta digitare:
distrobox-rm NOMEDISTROBOX
Disinstallazione
Per disinstallare possiamo utilizzare un metodo simile all’installazione, ovvero eseguendo degli script appositi.
Se abbiamo installato con i diritti di amministratore digiteremo:
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sudo sh
Altrimenti:
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sh -s -- --prefix ~/.local