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 Podman, Docker e Lilipod e di default, usa Podman se installato.
Distrobox consente di eseguire più distribuzioni Linux sullo stesso sistema in modo semplice ed efficace. Utilizzando contenitori, Distrobox facilita l'installazione e la gestione di diverse distribuzioni senza richiedere configurazioni complesse o partizioni separate. Gli utenti possono così testare, sviluppare o eseguire applicazioni in un ambiente isolato, beneficiando delle funzionalità native di ciascuna distribuzione. Distrobox integra anche strumenti per la condivisione di file e risorse tra l'host e i contenitori, offrendo grande flessibilità.
Installazione
Da repository
Distrobox è presente nei repository delle seguenti versioni di Ubuntu:
Ubuntu |
Distrobox |
24.04 |
1.7.0 |
24.10 |
1.7.2.1 |
25.04 |
1.8.1.2 |
Installare il pacchetto distrobox.
Per altre versioni di Ubuntu o per ottenere l'ultima versione di Distrobox, utilizzare il metodo alternativo.
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.".
Metodo alternativo
La versione più recente dell'applicazione Distrobox 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
Utilizzazione
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, imponendo l'icona. |
distrobox-rm NOME-CONTENITORE |
Cancellare 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 |
Esportazione di 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, visitare il sito web ufficiale.
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 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 VM 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è, aggiugiendo --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:~$
Si entra 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 può vedere che ci si trova nel contenitore perché il testo alla sinistra del simbolo $ è cambiato, è diventato: NOME_USER@NOME_CONTENITORE
Visualizzare la versione, per 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
Ora possiamo 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
Se il pacchetto language-pack-it-base non viene 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 modificare un file di configurazione, si può usare l'editor di testo nano già installato, ma per una maggiore facilità d'uso, useremo 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 installiamo una versione più recente di un'applicazione. Ad esempio installando Gimp ci ritroviamo con 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 1. Verrà creato un contenitore di una distribuzione “rolling releases” con questa immagine: ghcr.io/void-linux/void-glibc-full:latest.
Questo ci permetterà di scoprire come utilizzare Linux in modo completamente diverso da Ubuntu, consumando pochissime risorse, e usare comandi e applicazioni sconosciuti a Ubuntu.
Ecco 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:~$
Si entra 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 può vedere che ci si trova nel contenitore perché il testo alla sinistra del simbolo $ è cambiato, è diventato: NOME_USER@NOME_CONTENITORE
Visualizzare la versione, per confermare che siamo 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.
Installazione 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
Creare i lanciatori sul desktop host:
distrobox-export --app gimp distrobox-export --app octoxbps
Interfaccia grafica
Distrobox può essere utilizzato tramite una GUI con BoxBuddy.