Introduzione

Snappy è un gestore di pacchetti ideato da Canonical Ltd. nonché un formato di pacchetti software inizialmente solo per Ubuntu, ma è adottato anche da altre distribuzioni.

Uno Snap consente di installare un'applicazione con tutte le librerie di cui ha bisogno, separate dal sistema, vale a dire senza impegnare la versione più recente della libreria presente nel sistema operativo. In questo modo, vengono evitati conflitti di dipendenza fra applicazioni diverse (che richiedono una stessa libreria comune), e diviene possibile avere versioni non aggiornate o molteplici della stessa libreria o programma (all'interno di snap diversi).

L'estensione del formato utilizzata è .snap infatti gli Snappy possono essere installati sia dallo store di Ubuntu che dal pacchetto scaricato a parte; permette di aggiornare i pacchetti senza doverli ricaricare completamente. Gli sviluppatori possono creare pacchetti .snap con l'apposito tool, snapcraft, che gli permette di creare applicazioni desktop, servizi background e tool a linea di comando.

Se desideri installare Snapd su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare snapd

snapd è il servizio che gira sul tuo computer e tiene traccia dei tuoi snap installati, interagisce con il negozio e ti fornisce il comando snap per interagire con esso.

Snapd può essere installato su moltre distribuzioni, tra cui: Ubuntu, Archlinux, Debian, Gentoo, Fedora, OpenSuse, OpenWrt. Visitare questa pagina vedere per tutte le distribuzioni che supportano snap,

Installare snapd su Ubuntu e distribuzioni bastate su Debian

Su Ubuntu dovrebbe già essere installato nelle ultime versioni. Se non utilizzi una delle versioni più recenti di Ubuntu, installa snapd con il seguente comando

sudo apt install snapd

Installare snapd su Archlinux

sudo pacman -S snapd

Abilitare il servizio di snapd:

sudo systemctl enable --now snapd.socket

Installare snapd su Debian (solo Sid)

sudo apt install snapd

Installare snapd su Fedora

sudo dnf install snapd

Installare snapd su openSuSE

sudo zypper addrepo 
sudo zypper install snapd

Installare snapd su Gentoo

Installa l'overlay gentoo-snappy. OpenEmbedded/Yocto Installa meta layer snap.

Installare snapd su OpenWrt

Abilita snap-openwrt feed.

Cercare un pacchetto snap

snapd dovrebbe essere attivo e funzionante. Vediamo come puoi trovare qualsiasi tipo di pacchetto snap nello store con la voce hello:

snap find hello

Dovresti visualizzare un messaggio di output simile al seguente:

Name                           Version                      Publisher           Notes    Summary
hello                          2.10                         canonical✓          -        GNU Hello, the "hello world" snap
hello-world                    6.4                          canonical✓          -        The 'hello-world' of snaps
test-snapd-hello-classic       1.0                          canonical✓          classic  A hello-world with classic confinement
test-snapd-hello-multi-arch    1.0                          canonical✓          -        A amd64 snap that contains an i386 binary for testing
gamecake                       V19.961+git12.15b6eee-dirty  xriss               -        a single exe cross platform Lua game engine
...

snap find <search terms> interrogherà il negozio ed elencherà i risultati con il loro numero di versione, i nomi degli sviluppatori e la descrizione.

Installare un pacchetto snap

Come puoi vedere, un certo numero di sviluppatori ha caricato degli snap relativi a "Hello World". Basta installarne uno.

sudo snap install hello
hello 2.10 from Canonical✓ installed
Nota: quando si installa il primo snap, snapd scaricherà il pacchetto snap del sistema operativo di base. Di conseguenza, il tempo di download del primo snap può richiedere un po 'più di quanto sarà in futuro per qualsiasi altro snap.

Eseguire un pacchetto snap

Per eseguire il comando, digita semplicemente hello nella riga di comando (che è un comando fornito dallo snap hello):

hello
Hello, world!

Questo ovviamente è solo un semplice esempio, ciò che ha in comune con tutti gli altri snap, tuttavia, è che funziona completamente isolato e può accedere solo ai propri dati.

Controllare un pacchetto snap installato

Per visualizzare gli snap installati sul tuo sistema utilizza il comando snap list. Questo comando mostrerà anche la versione del software, la revisione unica, lo sviluppatore dello snap installato e qualsiasi informazione aggiuntiva opzionale.

snap list
Name    Version    Rev   Tracking  Publisher   Notes
core    16-2.43.2  8592  stable    canonical✓  core
hello   2.10       38    stable    canonical✓  -

Noterai che anche lo snap core, contenente il sistema di snap base, fa parte dell'elenco. Tra le altre cose, include un nuovo snapd, che ti assicurerà di essere sempre aggiornato).

Aggiornare i pacchetti snap

Gli snap vengono aggiornati automaticamente in background ogni giorno. Se lo desideri, puoi comunque ottenere manualmente l'ultima versione di tutti i tuoi snap eseguendo snap refresh, questo comando aggiornerà completamente tutti gli snap, a meno che non specifichi uno snap particolare da aggiornare.

sudo snap refresh hello
snap "hello" has no updates available

Rimuovere i pacchetti snap

Per disinstallare uno snap tutto ciò che devi fare è eseguire snap remove <snap name>. Nel nostro caso basta fare:

sudo snap remove hello
hello removed

Il codice dell'applicazione, le sue dipendenze di runtime e i dati utente associati vengono ripuliti.

Comandi multipli con snap

I pacchetti di snap possono contenere più di un comando (ad esempio un set di strumenti forniti in uno snap). Tutti i comandi vengono quindi spaziati dal nome del pacchetto snap. Eseguire i passaggi seguenti per vedere un esempio in azione:

sudo snap install hello-world
hello-world (stable) 6.3 from 'canonical' installed
hello-world
Hello World!
hello-world.env
XDG_SESSION_ID=24
SNAP_USER_COMMON=/root/snap/hello-world/common
SHELL=/bin/bash

.......

XDG_RUNTIME_DIR=/run/user/0/snap.hello-world
SNAP=/snap/hello-world/29
LESSCLOSE=/usr/bin/lesspipe %s %s
SNAP_INSTANCE_KEY=
Nota: per il nostro primo comando, non esiste un suffisso per il nome del comando. Ciò è dovuto al fatto che lo snap può avere un comando predefinito.

Servizi snap

Un servizio è semplicemente un comando di lunga durata, che idealmente sarà sempre attivo o per un determinato periodo di tempo per rispondere ad alcune richieste. Gli snap possono anche fornire servizi a livello di sistema. Se installi il pacchetto snap chiamato shout (un client web irc autonomo), puoi vederlo in azione puntando il browser su http://localhost:9000/ per interagire con il servizio.

I servizi di snap vengono semplicemente avviati/arrestati all'avvio e allo spegnimento del sistema. Possono essere configurati per essere attivati ​​anche su richiesta.

Utilizzo di versioni e canali

Gli sviluppatori possono rilasciare contemporaneamente versioni stabili, candidate, beta e edge di uno snap, per interagire con una comunità che è disposta a testare le modifiche imminenti.

Per impostazione predefinita, gli snap sono installati dal canale stable. Per convenzione, gli sviluppatori usano il canale candidate per fornire un testa a testa di una nuova revisione stabile, mettendola in candidato pochi giorni prima di caricarla nel canale stabile in modo che le persone possano provarlo. Il canale beta è per gli snap incompiuti ma interessanti, e il canale edge è convenzionalmente utilizzato per build di sviluppo regolari o giornaliere che hanno superato alcuni smoke-testing.

Cambiare canale per le app snap

sudo snap refresh hello --channel=beta
hello (beta) 2.10.1 from 'canonical' refreshed

Ora puoi eseguire la versione beta dello snap e vedere che il suo output è diverso:

hello
Hello, snap padawan!

snapd ora seguirà il canale beta dello snap hello e riceverà eventuali aggiornamenti tramite esso.

Possiamo anche installare uno snap direttamente dal canale beta con il parametro --beta:

sudo snap install hello --beta

Ripristinare uno snap

Una delle funzionalità di snapd è quella di poter semplicemente tornare a una versione precedente di un'applicazione (inclusi i dati associati allo snap) per qualsiasi motivo:

sudo snap revert hello
hello reverted to 2.10

Quindi proviamo a rilanciare lo snap hello:

hello
Hello, world!

Con questo sistema di rollback integrato, puoi aggiornare con fiducia sapendo che avrai sempre un modo per tornare allo stato di lavoro precedente.

Conclusione

In questo tutorial abbiamo visto come utilizzare e installare Snap. Per ulteriori informazioni leggere la documentazione ufficiale.