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.

  1. 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
  2. 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:


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.

Ulteriori risorse


CategoryNuoviDocumenti

rafbor/Prova2 (l'ultima modifica è del 04/05/2025 17.00.24, fatta da rafbor)