Con Ubuntu 16.04 hanno fatto il loro esordio i cosiddetti pacchetti snap: per chi non lo sapesse, si tratta di un nuovo formato di packaging per le applicazioni installabili, già utilizzato in Snappy Ubuntu Core e Ubuntu per smartphone, che semplifica sia la creazione dei pacchetti auto-installanti agli sviluppatori che la gestione agli utenti.
In particolare, ogni pacchetto racchiude in sé tutto il necessario affinché la relativa app snappy possa essere eseguita, dipendenze incluse, e grazie ad un particolare sistema di sandboxing l’intero meccanismo degli snap permette di installare, aggiornare, effettuare il downgrade ed eliminare in tutta sicurezza ogni app snappy (con relativo pacchetto snap) senza rischiare di compromettere il sistema circostante.
Affinché gli snap e le loro app possano interagire con le altre parti del sistema circostante, dunque al di fuori della sandbox, gli sviluppatori hanno implementato quelle che si chiamano interfaces: sono una parte essenziale del sistema snap, quella che di fatto permette alle app snappy di interagire con la rete, con il desktop, con il server X e con tutte le altre parti del sistema pur preservando la sicurezza garantita dalla sandbox.
Inoltre la maggior parte delle operazioni sugli snap è atomica, ovvero una volta avviata una procedura questa non può essere interrotta se non tramite operazioni avanzate: ad esempio, le parti che coinvolgono l’installazione di uno snap (download + scrittura e configurazione dei file sul sistema) non possono essere interrotte prima della terminazione di entrambe neanche premendo la combinazione di tasti CTRL+C, poiché l’intera sequenza continuerà in background.
Riassumendo, avere in sé tutte le dipendenze necessarie per l’esecuzione in maniera indipendente dal resto del sistema, essere circondato da una sandbox, interagire col sistema stesso grazie alle interfacce ed essere operazioni atomiche rendono l’intero sistema di gestione degli snap qualcosa di particolarmente sicuro e a prova di utente.
Ecco perché è bene iniziare a prendere confidenza con questo nuovo meccanismo, che probabilmente in futuro diventerà predefinito per Ubuntu: di seguito troverete una guida, utilizzabile su Ubuntu 16.04, che spiega le operazioni di base per gestire i pacchetti snap. Chiaramente l’intero sistema di gestione evolverà col tempo anche su Ubuntu Desktop e diverrà molto più immediato e user-friendly.
Ma fino ad allora… “accontentiamoci” di conoscerne le basi!
Elenco dei pacchetti snap
Per visualizzare un elenco dei pacchetti snap presenti nei repository di sistema è sufficiente digitare da terminale
snap find
Se state cercando uno specifico pacchetto, potrete controllarne la disponibilità nei repository digitando il comando
snap find nomepacchetto
Potrete inoltre ottenere un risultato simile utilizzando l’operatore pipe con il comando grep, come sempre:
snap find | grep nome
Installare un pacchetto snap
Si tratta di un’operazione estremamente semplice: è sufficiente infatti digitare da terminale il comando
sudo snap install nomepacchetto
Ad esempio, per installare il pacchetto snap relativo alla calcolatrice (presente nei repository) sarà sufficiente digitare il comando
sudo snap install ubuntu-calculator-app
La prima volta che procederete all’installazione di uno snap, il sistema si occuperà di installare automaticamente il pacchetto fondamentale ubuntu-core. La procedura di download ed installazione di un pacchetto snap è atomica, quindi non può essere interrotta neanche alla pressione della combinazione CTRL+C – in tal caso, essa continuerà in background.
Eseguire un pacchetto snap
I pacchetti snap possono essere eseguiti esattamente come qualsiasi altro pacchetto presente nel sistema, dunque digitando il nome a terminale. Nel nostro esempio, sarà sufficiente digitare il comando
ubuntu-calculator-app.calculator
Quasi tutti i pacchetti prevedono un’estensione oltre al nome con i quali vengono installati, vi raccomandiamo quindi di utilizzare il tasto TAB per completarne automaticamente il nome per l’esecuzione da terminale. Inoltre numerosi pacchetti, in particolare quelli che prevedono l’esecuzione su ambiente grafico, possono essere eseguiti direttamente dalla dash.
Visualizzare i pacchetti snap installati nel sistema
Per visualizzare la lista degli snap installati, è sufficiente digitare da terminale il comando
snap list
Come al solito, se desideriamo sapere se un pacchetto è presente o meno nella lista, possiamo servirci del comando grep:
snap list | grep nomepacchetto
Aggiornare un pacchetto snap
Per aggiornare un pacchetto snap è sufficiente digitare da terminale il comando
sudo snap refresh nomepacchetto
Va detto che, al momento, non esiste un comando per aggiornare contemporaneamente tutti gli snap installati, è probabile che questa aggiunta sarà fatta in seguito.
Eliminare un pacchetto snap
Per eliminare un pacchetto snap e disinstallarlo dal sistema, è sufficiente digitare il comando
sudo snap remove nomepacchetto
Visualizzare le operazioni recenti eseguite sugli snap
Ubuntu permette di visualizzare le ultime operazioni eseguite riguardo i pacchetti snap; per ciascuna di esse, sarà visualizzato il comando impartito, la data e l’ora in cui questo è stato impartito e l’identificativo del comando (utile in caso, ad esempio, si desideri usare la funzione abort che spiegheremo brevemente in seguito).
Il comando da eseguire per visualizzare tale lista è
sudo snap changes
Ed altro ancora…
La gestione dei pacchetti snap non finisce qui, tant’è che sono presenti numerosi altri parametri che permettono agli utenti avanzati di interagire con le procedure di installazione, eliminazione, connessione delle interfacce ed eventualmente con lo store (che al momento sembra non disponibile in Ubuntu desktop).
Ad esempio:
- il parametro abort, seguito dall’ID dell’operazione, può tentare di interromperla in caso di stallo;
- i parametri login e logout permettono di effettuare l’accesso allo store utilizzando il proprio nome utente;
- il parametro interfaces permette di visualizzare tutte le interfacce della sandbox occupabili dagli snap installati sul sistema.
Per una lista completa dei parametri disponibili vi invitiamo a consultare la pagina di manuale di snap, con il comando
man snap