#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
'''Distrobox''' è un [[https://en.wikipedia.org/wiki/Wrapper_function|wrapper]] per '''Docker''', '''Lilipod''' e '''Podman''' (di default usa quest'ultimo, che consente utilizzo di contenitori come utente non root).<
>
Attraverso l'utilizzo di [[https://en.wikipedia.org/wiki/Containerization_(computing)|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).<
>
È rilasciato con licenza GPL v3.0.
= Installazione =
== Da repository ==
[[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://distrobox|distrobox]].
'''Distrobox''' è presente nei [[Repository#Repository_ufficiali|repository ufficiali]] delle seguenti versioni di '''Ubuntu''':
|| '''Ubuntu''' || '''Distrobox''' ||
|| 25.04 || 1.8.1.2 ||
|| 24.10 || 1.7.2.1 ||
|| 24.04 || 1.7.0 ||
Per altre versioni di '''Ubuntu''' o per ottenere l'ultima versione di '''Distrobox''', utilizzare il metodo da script.
{{{#!wiki note
'''Distrobox''' è disponibile per ulteriori rilasci di '''Ubuntu''' nonché in altre versioni tramite '''[[Repository/RigaDiComando#Aggiungere_repository_launchpad|PPA]]'''. Per maggiori informazioni, consultare [[https://launchpad.net/ubuntu/+source/distrobox/+index#|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 [[https://wiki.ubuntu-it.org/AmministrazioneSistema/PrivilegiDiAmministrazione|amministratore]].
* '''Utente comune''':
* Per installare digitare nel [[AmministrazioneSistema/Terminale|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:
||<:55%> '''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. ||
||<:55%> '''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 [[https://github.com/89luca89/distrobox/tree/main/docs|documentazione ufficiale]].
{{{#!wiki tip
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 [[https://github.com/89luca89/distrobox/blob/main/docs/useful_tips.md|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 [[https://github.com/89luca89/distrobox/blob/main/docs/compatibility.md#containers-distros|immagini di contenitori]]. Altre sono disponibili seguendo i link di [[https://github.com/toolbx-images/images?tab=readme-ov-file#what-about-arch-linux-fedora-rhel-and-ubuntu-images|questa pagina]].<
>
In sostanza, per un contenitore '''Ubuntu''' abbiamo le seguenti scelte:
||<:> '''Ubuntu''' ||<:30%> '''Immagini (Toolbox)''' ||<:10%>||<:> '''Ubuntu''' ||<:50%> '''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 [[AmministrazioneSistema/Terminale|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:~$
}}}
{{{#!wiki note
Si noti che ci si trova all'interno del contenitore poiché il testo alla sinistra del simbolo '''$''' è cambiato diventando: `NOME_UTENTE@NOME_CONTENITORE`.
}}}
* Per visualizzare la versione, al fine di confermare che è in uso il contenitore '''Ubuntu 25.04''': {{{
user@Ubuntu2504:~$ cat /etc/os-release | grep VERSION
VERSION_ID="25.04"
VERSION="25.04 (Plucky Puffin)"
VERSION_CODENAME=plucky
}}}
* Sarà quindi 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 [[Ufficio/EditorDiTesto/Nano|nano]] già installato; tuttavia, per una maggiore facilità d'utilizzo, di seguito sarà usato l'editor [[Ufficio/EditorDiTesto/Micro|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
}}}
{{{#!wiki note
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 '''[[Grafica/Gimp|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 ==
In questo caso, con lo stesso host dell'esempio precedente, verrà creato un contenitore di una distribuzione [[https://it.wikipedia.org/wiki/Rolling_release|rolling]], sfruttando così il vantaggio di avere software sempre disponibile nella versione più recente.<
>
Verrà presa a titolo di esempio la distribuzione '''[[https://voidlinux.org/|Void]]''' con la seguente immagine: `ghcr.io/void-linux/void-glibc-full:latest`. Si potrà perciò utilizzare il sistema in modo completamente diverso da '''Ubuntu''', ossia con gli strumenti tipici della distribuzione guest (shell, set di applicazioni, specifici comandi, formato e gestore di pacchetti, repository ecc.).
* Di seguito la sequenza di ordini nel [[AmministrazioneSistema/Terminale|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:~$
}}}
{{{#!wiki note
Si noti che ci si trova all'interno del contenitore poiché il testo alla sinistra del simbolo '''$''' è cambiato diventando: `NOME_UTENTE@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 nel sistema guest (nei repository del sistema host la versione è la '''2.10.36'''):{{{
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
}}}
* Per l'installazione grafica di '''Gimp''':
* Da riga di comando:{{{
sudo xbps-install -S gimp
}}}
* Tramite un gestore di pacchetti:
0. Installare un gestore di pacchetti con interfaccia grafica:{{{
sudo xbps-install -S octoxbps
}}}
0. 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 [[https://github.com/Dvlv/BoxBuddyRS|pagina del progetto]].
= Ulteriori risorse =
* [[https://distrobox.it/|Sito ufficiale]]
* [[https://github.com/89luca89/distrobox|Distrobox su Github]]
* [[https://flathub.org/apps/io.github.dvlv.boxbuddyrs|BoxBuddy su Flathub]]
----
CategoryVirtualizzazione