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 root@IP_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 nome_utente@IP_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 nome_utente@IP_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.