Ricerca nel sito web

Come integrare qualsiasi distribuzione Linux all'interno di un terminale con Distrobox


Distrobox è uno strumento gratuito e open source che ci consente di integrare gli utenti delle distribuzioni Linux. Sotto il cofano utilizza Docker o Podman per creare contenitori e li integra con l'host condividendo l'accesso al server grafico, alla directory HOME dell'utente e ai dispositivi USB. In questo tutorial vediamo come installare e utilizzare Distrobox sulle distribuzioni Linux più utilizzate.

In questo tutorial imparerai:

  • Come installare Distrobox sulle distribuzioni Linux più utilizzate
  • Come integrare una distribuzione utilizzando Distrobox
  • Come inserire e utilizzare un contenitore Distrobox
  • Come esportare le applicazioni da un contenitore
  • Come elencare, arrestare e rimuovere i contenitori esistenti

introduzione

Distrobox funziona in modo simile a toolbox, ma è compatibile con una gamma più ampia di distribuzioni (puoi trovare l'elenco effettivo su GitHub) e può utilizzare sia Podman che Docker dietro le quinte, mentre toolbox supporta solo il primo. Distrobox mira a raggiungere una perfetta integrazione dei contenitori con il sistema host: lo stack grafico, la directory HOME dell'utente e i dispositivi di archiviazione USB sono infatti condivisi, per impostazione predefinita, con i contenitori. Per questo motivo, se l’isolamento e la sicurezza sono obiettivi primari, Distrobox non è lo strumento appropriato.

Installazione

Tutte le distribuzioni Linux più utilizzate includono Distrobox nei propri repository ufficiali, quindi installarlo è solo questione di utilizzare l'apposito gestore di pacchetti. Ecco i comandi esatti che vogliamo utilizzare:

Iniziare

Il modo più semplice per creare e integrare una distribuzione con Distrobox è utilizzare il comando crea senza alcuna opzione o argomento:

$ distrobox create

Quando richiamato in questo modo, Distrobox crea un contenitore utilizzando l'immagine predefinita, che viene specificata tramite la variabile container_image_default nel file di configurazione di Distrobox; questo, nella maggior parte dei casi, equivale alla distribuzione dell'host. Per utilizzare una distribuzione specifica (e facoltativamente una versione di rilascio) come destinazione, passiamo il suo nome come argomento all'opzione -i (abbreviazione di --image). Per creare un contenitore basato su Archlinux, ad esempio, eseguiremmo:

$ distrobox create -i archlinux

Se l'immagine della distribuzione di destinazione non esiste localmente, Distrobox ci chiederà se vogliamo scaricarla:

Image archlinux not found.
Do you want to pull the image now? [Y/n]: y

Per evitare richieste interattive come quella sopra, possiamo aggiungere l'opzione -Y (--yes) al comando. Una volta completato il download, Distrobox creerà un contenitore basato sull'immagine, nominandolo, per impostazione predefinita, con il nome della distribuzione stessa (possiamo specificare un nome alternativo con l'opzione -n).

Quando creiamo un contenitore, abbiamo la possibilità di specificare un elenco di pacchetti aggiuntivi che dovrebbero essere installati, utilizzando l'opzione --additional-packages. Nell'esempio seguente, creiamo un contenitore basato su Archlinux e specifichiamo che vogliamo installare i pacchetti git e vim:

$ distrobox create -i archlinux --additional-packages "vim git"

Specificare una HOME alternativa per il contenitore

Come abbiamo già detto, i contenitori creati con Distrobox condividono la directory HOME con l'utente che lancia i comandi di Distrobox. Ciò significa che un programma in esecuzione all'interno del contenitore potrebbe ingombrarlo con i propri file di configurazione. Per evitare ciò, possiamo specificare una HOME alternativa per il contenitore, utilizzando l'opzione -H (--home). Ecco un esempio:

$ distrobox create -i archlinux -H ~/container-home

La directory di destinazione verrà creata automaticamente se non esiste.

Entrando nel contenitore

Una volta che un contenitore è pronto, per iniziare ad usarlo, utilizziamo il comando enter, passando il suo nome come argomento. Per inserire un contenitore denominato "archlinux", eseguiremo:

$ distrobox enter archlinux

La prima volta che entriamo in un contenitore, Distrobox esegue alcune operazioni preliminari. Una volta completata la configurazione del contenitore, il prompt della shell cambierà, per riflettere il fatto che stiamo lavorando nell'ambiente del contenitore:

📦[doc@archlinux ~]$

Ora possiamo eseguire comandi proprio come se stessimo utilizzando il sistema in modo nativo. Poiché in questo caso la distribuzione di destinazione è Archlinux, per sincronizzare i repository eseguiremo:

📦[doc@archlinux ~]$ sudo pacman -Sy

Poiché il contenitore ha accesso allo stack grafico del sistema host, possiamo installare e utilizzare sia la riga di comando che le applicazioni grafiche al suo interno. Per installare "code" (la versione open source dell'editor VScode), ad esempio, eseguiremmo:

📦[doc@debian-bullseye ~]$ sudo pacman -S code

Una volta installata l'applicazione, possiamo avviarla dalla riga di comando:

📦[doc@archlinux ~]$ code

In alternativa all'inserimento manuale del contenitore ogni volta che vogliamo eseguire un comando al suo interno, possiamo utilizzare la seguente scorciatoia:

$ distrobox enter archlinux -- code

Esportazione di un'applicazione

Nell'esempio precedente abbiamo visto quanto sia semplice installare e lanciare un'applicazione all'interno di un container creato con Distrobox. Per meglio integrare un'applicazione nel sistema ospite, invece, possiamo “esportarla”.

Nell’esempio precedente abbiamo installato l’editor “codice”, ma siamo stati costretti a eseguirlo dalla riga di comando, poiché il launcher del desktop non appariva nel menu “applicazioni” del sistema host. Per risolvere questo problema possiamo “esportare” l'applicazione con il comando distrobox-export, che deve essere eseguito all'interno del contenitore.

Per esportare l'editor "codice", eseguiremmo:

$ distrobox enter archlinux -- distrobox-export --app code

Dopo alcuni secondi, dovremmo trovare il launcher delle applicazioni nel menu host:

Per annullare l'esportazione di un'applicazione, aggiungiamo l'opzione --delete al comando distrobox-export. Per eliminare il programma di avvio del "codice" dal sistema host, eseguiremo:

$ distrobox enter archlinux -- distrobox-export --app code --delete

Gestione dei contenitori distrobox

Per elencare i contenitori creati con Distrobox possiamo usare il comando list:

$ distrobox list

In questo caso, come previsto, esiste un solo contenitore:

ID           | NAME      | STATUS        | IMAGE 
1989f0686c1f | archlinux | Up 29 minutes | docker.io/library/archlinux:latest

Come possiamo vedere dall'output del comando, il contenitore è attualmente in esecuzione. Per fermarlo utilizziamo il comando stop:

$ distrobox stop archlinux

Infine, per rimuovere il contenitore, utilizziamo il comando rm:

$ distrobox rm archlinux

Conclusioni

Distrobox è un'applicazione gratuita e open source che ci consente di integrare un sistema host con l'area utente delle distribuzioni Linux supportate, utilizzando contenitori e affidandosi a Docker o Podman sotto il cofano. In questo tutorial abbiamo visto come installare Distrobox su alcune delle distribuzioni Linux più utilizzate, come creare ed inserire contenitori e come eseguire comandi al loro interno. Abbiamo visto anche come esportare le applicazioni container nel sistema host e, infine, come elencare, fermare e rimuovere i container creati con Distrobox.

Articoli correlati: