Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento. |
Guida verificata con Ubuntu: 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Distrobox è un wrapper per Docker, Lilipod e Podman (di default usa quest'ultimo, che consente utilizzo di contenitori come utente non root).
Attraverso l'utilizzo di container non isolati dall'host, questo strumento consente di eseguire più distribuzioni GNU/Linux sullo stesso sistema in modo semplice ed efficace.
Distrobox integra anche strumenti per la condivisione di file e risorse tra l'host e i contenitori, offrendo grande flessibilità: i container così creati saranno strettamente integrati col sistema host, avendo accesso al kernel (compresi driver e moduli), ai processi, alla HOME dell'utente, all'hardware, ai drive interni ed esterni, alle applicazioni grafiche (sia con X11 che Wayland) e all'audio.
Distrobox, quindi, facilita l'installazione e la gestione di diverse distribuzioni, senza richiedere sistemi virtualizzati, partizioni separate e configurazioni complesse. Gli utenti possono così eseguire, testare o sviluppare applicazioni in un ambiente isolato, beneficiando delle funzionalità native di ciascuna distribuzione, oppure utilizzando versioni e/o librerie più o meno recenti (senza far ricorso a Snap, Flatpak e AppImage).
Installazione
Da repository
Installare il pacchetto distrobox.
Distrobox è presente nei repository ufficiali delle seguenti versioni di Ubuntu:
Ubuntu |
Distrobox |
24.04 |
1.7.0 |
24.10 |
1.7.2.1 |
25.04 |
1.8.1.2 |
Per altre versioni di Ubuntu o per ottenere l'ultima versione di Distrobox, utilizzare il metodo da script.
Distrobox è disponibile per ulteriori rilasci di Ubuntu nonché in altre versioni tramite PPA. Per maggiori informazioni, consultare questa pagina e cliccare in fondo alla pagina su "Other versions of 'distrobox' in untrusted archives.".
Tramite script
La versione più recente dell'applicazione può essere installata/disinstallata direttamente tramite uno script, con l'uso limitato all'utente comune o disponibile all'intero sistema tramite l'utente amministratore.
Utente comune:
Per installare digitare nel terminale il seguente comando:
wget -qO- https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh
Per disinstallare digitare nel terminale il seguente comando:
wget -qO- https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sh
Utente amministratore:
Per installare digitare nel terminale il seguente comando:
wget -qO- https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh
Per disinstallare digitare nel terminale il seguente comando:
wget -qO- https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sudo sh
Utilizzo
Comandi di base
Di seguito sono elencati i comandi di base (senza tutte le opzioni) e le relative descrizioni:
Comandi al di fuori della distrobox |
Descrizione |
distrobox-assemble --file /my/custom/path.ini |
Per creare o distruggere i contenitori in lotti, in base a un file manifest. |
distrobox-create --name NOME-CONTENITORE --image NOME-OS:VERSIONE |
Creazione di un contenitore. |
distrobox-enter NOME-CONTENITORE |
Entrare nel contenitore. |
distrobox-ephemeral --name NOME-CONTENITORE --image NOME-OS:VERSIONE |
Creare un contenitore temporale, distruggerlo quando si esce dalla shell. |
distrobox generate-entry NOME-CONTENITORE --icon /path/to/icon.png |
Creare sull'host un lanciatore del desktop per un contenitore, impostando un'icona. |
distrobox-rm NOME-CONTENITORE |
Eliminare il contenitore. |
distrobox-list |
Elencare i contenitori attivi. |
distrobox-stop NOME-CONTENITORE |
Fermare il contenitore. |
distrobox-upgrade NOME-CONTENITORE |
Eseguire un aggiornamento del contenitore usando il gestore di pacchetti del contenitore. |
Comandi all'interno della distrobox |
Descrizione |
distrobox-export --app NOME-APPLICAZIONE |
Esportare un lanciatore di un'applicazione da un contenitore all'host. |
distrobox-host-exec COMANDO |
Eseguire comandi/programmi dall'host mentre si è all'interno del contenitore. |
distrobox-init |
Installare le dipendenze mancanti, impostare l'utente e i gruppi, montare le directory dall'host, ecc. |
logout |
Uscire dal contenitore |
Per maggiori dettagli su come utilizzare i comandi, consultare la documentazione ufficiale.
Per il comando distrobox-create è disponibile l'opzione generica --home /percorso/custom/home (da adattare con il percorso effettivo), che permette di impostare la HOME del container in un percorso personalizzato, separato da quella dell'utente host.
Può tornare utile in alcuni casi, come quando si desidera mantenere separate le impostazioni di un programma installato sia nell'host sia nel container.
Altri consigli utili sono presenti in questa pagina.
Esempio 1: creazione di un contenitore Ubuntu
In questo esempio, l'host è Ubuntu 24.04
user@desktop:~$ cat /etc/os-release | grep VERSION VERSION_ID="24.04" VERSION="24.04.2 LTS (Noble Numbat)" VERSION_CODENAME=noble
Scegliere il guest tra le seguenti immagini di contenitori. Altri sono disponibili seguendo i link di questa pagina.
In sostanza, per un contenitore Ubuntu abbiamo le seguenti scelte:
Ubuntu |
Immagini (Toolbox) |
Ubuntu |
Immagini (Docker) |
|
|
|
|
14.04 |
ubuntu:14.04 |
16.04 |
quay.io/toolbx/ubuntu-toolbox:16.04 |
|
16.04 |
ubuntu:16.04 |
18.04 |
quay.io/toolbx/ubuntu-toolbox:18.04 |
|
18.04 |
ubuntu:18.04 |
20.04 |
quay.io/toolbx/ubuntu-toolbox:20.04 |
|
20.04 |
ubuntu:20.04 o ubuntu:focal |
22.04 |
quay.io/toolbx/ubuntu-toolbox:22.04 |
|
22.04 |
ubuntu:22.04 o ubuntu:jammy |
24.04 |
quay.io/toolbx/ubuntu-toolbox:24.04 |
|
24.04 |
ubuntu:24.04 o ubuntu:noble o ubuntu:latest |
|
|
|
24.10 |
ubuntu:24.10 o ubuntu:oracular |
|
|
|
25.04 |
ubuntu:25.04 o ubuntu:plucky |
Per creare un contenitore standard, chiamato Ubuntu2504 e basato su un'immagine docker ubuntu:25.04, digitare nel terminale il comando:
distrobox-create --name Ubuntu2504 --image ubuntu:25.04
Tuttavia, è preferibile creare contenitori di sistema (in cui il contenitore si comporta in modo più simile a una macchina virtuale completa che a un contenitore di applicazioni) utilizzando il parametro --init. All'interno si avranno un init separato, una sessione utente, demoni e così via. Cioè, aggiungendo --init --additional-packages "systemd libpam-systemd" al comando precedente:
user@desktop:~$ distrobox-create --name Ubuntu2504 --image ubuntu:25.04 --init --additional-packages "systemd libpam-systemd" Image ubuntu:25.04 not found. Do you want to pull the image now? [Y/n]: Resolved "ubuntu" as an alias (/etc/containers/registries.conf.d/shortnames.conf) Trying to pull docker.io/library/ubuntu:25.04... Getting image source signatures Copying blob 1b3c8f62d074 done | Copying config f51757c148 done | Writing manifest to image destination f51757c148c75f97fd1c48fb6b21ac37bd5108e91e4b1d528d5e62827cf76a36 Creating 'Ubuntu2504' using image ubuntu:25.04 [ OK ] Distrobox 'Ubuntu2504' successfully created. To enter, run: distrobox enter Ubuntu2504 user@desktop:~$
Per entrare nel contenitore:
user@desktop:~$ distrobox enter Ubuntu2504 Starting container... [ OK ] Installing basic packages... [ OK ] Setting up devpts mounts... [ OK ] Setting up read-only mounts... [ OK ] Setting up read-write mounts... [ OK ] Setting up host's sockets integration... [ OK ] Integrating host's themes, icons, fonts... [ OK ] Setting up distrobox profile... [ OK ] Setting up sudo... [ OK ] Setting up user groups... [ OK ] Setting up kerberos integration... [ OK ] Setting up user's group list... [ OK ] Setting up existing user... [ OK ] Setting up user home... [ OK ] Ensuring user's access... [ OK ] Setting up init system... [ OK ] Firing up init system... [ OK ] Container Setup Complete! user@Ubuntu2504:~$
Si noti che ci si trova all'interno del contenitore poiché il testo alla sinistra del simbolo $ è cambiato diventando: NOME_USER@NOME_CONTENITORE.
Per visualizzare la versione, al fine di confermare che siamo sulla 25.04:
user@Ubuntu2504:~$ cat /etc/os-release | grep VERSION VERSION_ID="25.04" VERSION="25.04 (Plucky Puffin)" VERSION_CODENAME=plucky
Sarà possibile eseguire le normali operazioni di aggiornamento con sudo apt update e sudo apt full-upgrade e poi cambiare la lingua predefinita in italiano:
sudo apt install language-pack-it
Qualora il pacchetto language-pack-it-base non venisse installato automaticamente come dipendenza, installarlo con:
sudo apt install language-pack-it-base
Generare i file di lingua:
sudo locale-gen it_IT.UTF-8
Si deve quindi modificare un file di configurazione. A tal fine si può usare l'editor di testo nano già installato; tuttavia, per una maggiore facilità d'uso, di seguito sarà usato l'editor micro:
sudo apt install micro sudo micro /etc/default/locale
Modificare il file in modo da avere le seguenti 3 righe:
LANG=it_IT.UTF-8 LANGUAGE=it_IT:it LC_ALL=it_IT.UTF-8
Salvare il file (Ctrl-S), uscire (Ctrl-Q), e in fine digitare:
source /etc/default/locale
In caso di errore con l'ultimo comando, uscire dal contenitore con logout e poi rientrare con distrobox enter Ubuntu2504.
È adesso possibile installare una versione più recente di un'applicazione. Ad esempio installando Gimp è presente la versione deb più recente:
user@Ubuntu2504:~$ dpkg -l | grep gimp ii gimp 3.0.2-1
mentre sull'host l'ultima versione nei repository è la 2.10.36.
Per creare un lanciatore sul desktop host, digitare:distrobox-export --app gimp
Esempio 2: creazione di un contenitore Void Linux
L'host è lo stesso dell'esempio precedente. Verrà creato un contenitore di una distribuzione rolling con la seguente immagine: ghcr.io/void-linux/void-glibc-full:latest.
Ciò permetterà di utilizzare il sistema in modo completamente diverso da Ubuntu, ossia con gli strumenti tipici della distribuzione Void (shell, set di applicazioni, specifici comandi, formato e gestore di pacchetti, repository ecc.).
Di seguito la sequenza di ordini nel terminale:
user@desktop:~$ distrobox-create --init --name VoidLinux --image ghcr.io/void-linux/void-glibc-full:latest Image ghcr.io/void-linux/void-glibc-full:latest not found. Do you want to pull the image now? [Y/n]: Trying to pull ghcr.io/void-linux/void-glibc-full:latest... Getting image source signatures Copying blob c219f699057e done | Copying blob 51d9f963312e done | Copying config 6a34e6fe4a done | Writing manifest to image destination 6a34e6fe4aacf1d8bffdbcb2bd20acf00425dacc723f775dac75812a478ecbda Creating 'VoidLinux' using image ghcr.io/void-linux/void-glibc-full:latest [ OK ] Distrobox 'VoidLinux' successfully created. To enter, run: distrobox enter VoidLinux user@desktop:~$
Per entrare nel contenitore:
user@desktop:~$ distrobox enter VoidLinux Starting container... [ OK ] Installing basic packages... [ OK ] Setting up devpts mounts... [ OK ] Setting up read-only mounts... [ OK ] Setting up read-write mounts... [ OK ] Setting up host's sockets integration... [ OK ] Integrating host's themes, icons, fonts... [ OK ] Setting up distrobox profile... [ OK ] Setting up sudo... [ OK ] Setting up user groups... [ OK ] Setting up kerberos integration... [ OK ] Setting up user's group list... [ OK ] Setting up existing user... [ OK ] Setting up user home... [ OK ] Ensuring user's access... [ OK ] Setting up init system... [ OK ] Firing up init system... [ OK ] Container Setup Complete! user@VoidLinux:~$
Si noti che ci si trova all'interno del contenitore poiché il testo alla sinistra del simbolo $ è cambiato diventando: NOME_USER@NOME_CONTENITORE.
Per visualizzare la versione, al fine di confermare che si è su Void Linux:
user@VoidLinux:~$ cat /etc/os-release NAME="Void" ID="void" PRETTY_NAME="Void Linux" HOME_URL="https://voidlinux.org/" DOCUMENTATION_URL="https://docs.voidlinux.org/" LOGO="void-logo" ANSI_COLOR="0;38;2;71;128;97" DISTRIB_ID="void"
Eseguire le normali operazioni di aggiornamento:
sudo xbps-install -Su
Controllare la versione di Gimp disponibile:
user@VoidLinux:~$ sudo xbps-query -Rs gimp [-] gimp-3.0.2_1 GNU image manipulation program [-] gimp-devel-3.0.2_1 GNU image manipulation program - development files [-] gmic-gimp-3.5.3_1 GREYC's Magic for Image Computing (image processing framework) - GIMP plugin [-] gtk4-4.18.4_1 GIMP ToolKit (v4) [-] gtk4-demo-4.18.4_1 GIMP ToolKit (v4) - demonstration application [-] gtk4-devel-4.18.4_1 GIMP ToolKit (v4) - development files [-] gtk4-doc-4.18.4_1 GIMP ToolKit (v4) - documentation [-] gtk4-update-icon-cache-4.18.4_1 GIMP ToolKit (v4) - GTK4 update icon cache tool [-] libgimp-3.0.2_1
Il vantaggio di una distribuzione "rolling" è che il software sarà sempre disponibile nella sua versione più recente.
Per l'installazione grafica di Gimp:
Da riga di comando:
sudo xbps-install -S gimp
- Tramite un gestore di pacchetti
Installare un gestore di pacchetti con interfaccia grafica:
sudo xbps-install -S octoxbps
Avviare il gestore di pacchetti e procedere con l'installazione:
octoxbps
Verrà visualizzato il gestore di pacchetti grafico:
Creare i lanciatori sul desktop host:
distrobox-export --app gimp distrobox-export --app octoxbps
Interfaccia grafica
Distrobox può essere utilizzato tramite un'interfaccia grafica con l'applicazione BoxBuddy.
Per maggiori informazioni consultare la pagina del progetto.