Come lavorare con i pacchetti Snap su Linux

Quando installi pacchetti software Linux con snap, puoi dire addio all’inferno delle dipendenze e distruggere altre applicazioni funzionanti. I pacchetti Snap erano originariamente progettati per Ubuntu, ma ora sono disponibili su una varietà di distribuzioni Linux.

Cosa sono i pacchetti Snap?

In passato, l’installazione di applicazioni su Linux era un’esperienza potenzialmente frustrante. Installeresti qualcosa solo per scoprire che una particolare libreria o altra dipendenza era mancante o obsoleta. Dovresti quindi cercare la risorsa mancante e installarla, solo per scoprire che un’altra applicazione dipende dalla versione della libreria che hai appena sostituito. Aggiustane uno, rompi uno, ripeti.

Questo è migliorato con migliori sistemi di gestione dei pacchetti, come apt, dnf, e pacman. Tuttavia, devi ancora affrontare una lotta se hai bisogno di diverse versioni della stessa applicazione installate. Oppure, se utilizzi due applicazioni che entrano in conflitto perché sono legate a versioni specifiche, ma diverse, di una libreria.

Una soluzione a questi problemi è il confezionamento delle applicazioni e i sistemi di distribuzione. Elegante è uno dei più popolari di questi. Si basa su un sistema di creazione di pacchetti e distribuzione chiamato Click, che richiama il file Ubuntu Touch iniziativa. AppImage e Pacco piatto sono altri che potresti aver incontrato.

Questi sistemi incapsulano l’applicazione insieme a eventuali dipendenze e altri requisiti in un unico file compresso. L’applicazione viene quindi eseguita in una sorta di mini-contenitore. È in modalità sandbox e separato dalle altre applicazioni. Le librerie e le altre risorse con cui l’applicazione è inclusa nel pacchetto o richiede sono disponibili solo per essa.

Non sono installati nel senso tradizionale, quindi non causano problemi con altre applicazioni che richiedono versioni diverse delle stesse risorse. È anche possibile installare ed eseguire applicazioni che richiedono versioni di librerie in conflitto perché ciascuna applicazione si trova nella propria sandbox.

Se non vengono installati nel solito modo, però, come vengono gestiti? Bene, il singolo file del pacchetto viene scaricato, decompresso e montato come SquashFSfile system virtuale. Ti viene quindi presentato come un ambiente virtuale. Tutto questo avviene dietro le quinte. Tutto quello che saprai è che hai installato un’applicazione e, ora, puoi accedervi.

Ovviamente, poiché ogni file del pacchetto deve contenere tutte le risorse necessarie all’applicazione, i file del pacchetto possono essere di grandi dimensioni. È anche facile duplicare una risorsa che normalmente installeresti solo una volta, ad esempio MySQL o Apache. Se due diverse applicazioni snapshot richiedono le stesse risorse, ciascuna porta la propria copia.

Questo è il compromesso tra la semplicità dell’installazione e la rimozione dei grattacapi legati al conflitto di risorse, però.

Installazione di snapd

Snappy è stato introdotto con Ubuntu 16.04, quindi se stai utilizzando quella versione o successiva, sei già a posto. Sulla nostra macchina, Snappy era installato su Manjaro 18.04, ma dovevamo installarlo su Fedora 31.

snap è sia il nome dei file del pacchetto che il comando che utilizzi per interagire con essi. Dietro le quinte, il demone snapd è anche il nome del pacchetto che devi installare se non hai già Snappy sul tuo computer.

Per installare snapd su Fedora digita il seguente comando:

sudo dnf install snapd

Il

Se devi installarlo su Manjaro, usa questi comandi:

sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket

È possibile utilizzare il comando versione snap per visualizzare la versione del client snap, del demone snapd e il numero di serie del software. Verranno visualizzati anche il nome e il rilascio della distribuzione Linux e la versione del kernel.

Digita quanto segue:

snap version

Il

Installazione di pacchetti snap

È un processo piuttosto semplice installare un pacchetto snap. È possibile utilizzare snap per cercare i pacchetti snap, quindi installare quello desiderato.

Digitiamo quanto segue per cercare e installare l’editor di immagini gimp:

snap find gimp

Il

snap ricerca le corrispondenze con l’indizio di ricerca “gimp” e restituisce i risultati. Troverà tutto ciò che corrisponde o menziona il termine di ricerca.

Per installare uno dei pacchetti, utilizziamo il valore dalla colonna Nome, come mostrato di seguito:

sudo snap install gimp

Il

Durante il download, la cifra percentuale completata aumenta e una barra di avanzamento si insinua dalla sinistra della finestra del terminale. Al termine dell’installazione, viene visualizzato un messaggio (come mostrato di seguito) che informa che il pacchetto è stato installato.

UN

Puoi usare il comando df per controllare la capacità e l’utilizzo dei diversi file system configurati sul tuo computer Linux. Se instradiamo il suo output nel comando grep e cerchiamo “gimp”, noi isolare la voce per il pacchetto abbiamo appena installato.

Digitiamo quanto segue:

df | grep gimp

Il

Questo ci mostra che il pacchetto snap è stato montato come se fosse un file system. Il punto di montaggio si trova nella directory snap qui: / snap / gimp / 252. Il “252” è il numero di rilascio di questa versione di gimp.

Il file system è elencato come: / dev / loop18. I file di dispositivo loop vengono utilizzati per rendere i file regolari accessibili come dispositivi a blocchi. In genere vengono utilizzati per montare i file system nelle immagini del disco. In questo caso, stanno montando il filesystem SquashFS all’interno del pacchetto snap. Il “18” significa che questo è il 18 ° file di dispositivo / dev / loop in uso su questo computer Linux.

Possiamo usare il comando df per verificarlo rapidamente. Useremo l’opzione -t (tipo) per limitare l’output solo ai tipi di file SquashFS.

Digitiamo quanto segue:

df -t squashfs

Il

Vengono elencati i file system SquashFS montati. Un file di dispositivo / dev / loop gestisce ciascuno di essi e ce ne sono 18.

File system SquashFS elencati in una finestra di terminale.

Ogni file system è montato su una directory all’interno della directory / snap. Tuttavia, questo non significa che ci siano 18 diversi pacchetti snap installati su questo computer. Questa è una distribuzione Ubuntu, quindi alcuni pacchetti snap vengono installati immediatamente e ne abbiamo appena installato un altro.

Inoltre, quando si installa snapd, vengono installati alcuni pacchetti di snap di base per gestire le esigenze di altri pacchetti snap.

Possiamo usare il comando snap list, come mostrato di seguito, per elencare i pacchetti snap installati:

snap list

Un elenco di snap in una finestra di terminale.

L’output era un po ‘ampio, quindi la fine degli elenchi è mostrata di seguito.

La fine dell'output della lista snap in una finestra di terminale.

Ecco l’intero elenco:

Name                 Version                    Rev   Tracking  Publisher    Notes
core                 16-2.43.3                  8689  stable    canonical*   core
core18               20200124                   1668  stable    canonical*   base
gimp                 2.10.18                    252   stable    snapcrafters -
gnome-3-26-1604      3.26.0.20191114            98    stable/…  canonical*   -
gnome-3-28-1804      3.28.0-16-g27c9498.27c9498 116   stable    canonical*   -
gnome-calculator     3.34.1+git1.d34dc842       544   stable/…  canonical*   -
gnome-characters     v3.32.1+git3.b9120df       399   stable/…  canonical*   -
gnome-logs           3.34.0                     81    stable/…  canonical*   -
gnome-system-monitor 3.32.1-3-g0ea89b4922       127   stable/…  canonical*   -
gtk-common-themes    0.1-28-g1503258            1440  stable/…  canonical*   -

Come puoi vedere, ci sono 10 pacchetti snap installati, non 18. Tuttavia, questi 10 pacchetti hanno dato origine ai 18 file system SquashFS. Le colonne della tabella sono abbastanza autoesplicative, ma ecco alcuni chiarimenti:

Nome: il nome del pacchetto snapshot installato.
Versione: il numero di versione del software nel pacchetto snap.
Rev: il numero di revisione del pacchetto snap.
Monitoraggio: il canale che questo pacchetto snap monitora per gli aggiornamenti. Ce ne sono quattro:
Stabile: il canale predefinito. Come dice il nome, questo canale contiene i pacchetti più stabili.
Candidato: questo canale è meno stabile, ma molto simile perché contiene software a livello di release candidate, che è completo di codice. Passa attraverso il test finale prima di essere spostato sul canale stabile.
Beta: questo canale è di qualità del ciclo di sviluppo avanzato, ma non è garantito che sia stabile.
Edge: per i primi tester di build. Non dovresti usare questo canale per lavori importanti o su un computer di produzione. Ecco i draghi!

Editore: la persona, la società o l’organizzazione che ha rilasciato il pacchetto snap. Se fosse un editore verificato (e la finestra del tuo terminale supporta Unicode), vedrai un segno di spunta verde accanto al nome dell’editore. Se non può mostrare un segno di spunta, vedrai un asterisco
.

Note: eventuali commenti o informazioni aggiuntive verranno visualizzati qui.

I canali snap

È possibile utilizzare l’opzione info per ottenere una descrizione di un pacchetto snap.

snap info gtk-common-themes

Per farlo, digitiamo quanto segue:

Il

Possiamo vedere quale canale sta monitorando il pacchetto e la versione del software nei pacchetti snap in ciascuno dei quattro canali. Nella maggior parte dei casi, dovresti rimanere sul canale stabile.

Un pacchetto snap controlla quattro volte al giorno per vedere se una versione più recente del software è disponibile dal canale che sta guardando o “monitorando”. Se vuoi cambiare il canale che un pacchetto snap tiene traccia, puoi usare le opzioni refresh e –channel.

sudo snap refresh gtk-common-themes --channel=beta

Per farlo, digitiamo quanto segue:

Il

Se fosse disponibile una versione più recente del software, sarebbe stata installata, ma qui non era così. Tuttavia, il pacchetto snap sta ora monitorando il canale beta. Non appena viene rilasciata una nuova versione beta, viene automaticamente scaricata e aggiornata.

È possibile utilizzare l’opzione –list per verificare se sono disponibili aggiornamenti per uno qualsiasi dei pacchetti snap installati sul computer.

sudo snap refresh --list

Per farlo, digitiamo quanto segue:

Il

Ti verrà detto se uno qualsiasi dei canali monitorati dai pacchetti snap sul tuo computer contiene versioni software più recenti.

sudo snap refresh gtk-common-themes

Se è disponibile una versione più recente del software, è possibile utilizzare l'opzione di aggiornamento, come mostrato di seguito, per forzare manualmente un aggiornamento:

Il

Rimozione di un pacchetto snap

sudo snap remove gimp

Per disinstallare un pacchetto snap, puoi utilizzare l'opzione di rimozione, come mostrato di seguito:

Il

Lo snap Cheat Sheet

Usare i pacchetti snap è piuttosto semplice, ma abbiamo compilato un elenco di alcuni comandi che ti aiuteranno:
Per cercare un pacchetto: snap find package_name
Per installare un pacchetto: sudo snap install nome_pacchetto
Per vedere tutti i pacchetti installati: snap list
Per ottenere informazioni su un singolo pacchetto: snap info nome_pacchetto
Per cambiare il canale che un pacchetto tiene traccia per gli aggiornamenti: sudo snap refresh nome_pacchetto –channel = nome_canale
Per vedere se gli aggiornamenti sono pronti per i pacchetti installati: sudo snap refresh –list
Per aggiornare manualmente un pacchetto: sudo snap refresh nome_pacchetto

Per disinstallare un pacchetto: sudo snap remove package_name