Come lavorare con i pacchetti Snap su Linux

L'icona dei pacchetti Snap.
Ubuntu

Quando si installano pacchetti software Linux con snap, puoi dire addio all'inferno delle dipendenze e rompere altre applicazioni funzionanti. I pacchetti Snap sono stati 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 è stata un'esperienza potenzialmente frustrante. Installeresti qualcosa solo per scoprire che una determinata libreria o altra dipendenza mancava o era obsoleta. Dovresti quindi cercare la risorsa mancante e installarla, solo per trovare un'altra applicazione dipendente dalla versione della libreria che hai appena sostituito. Ripara uno, rompi uno, ripeti.

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

Una soluzione a questi problemi sono i sistemi di impacchettamento e distribuzione delle applicazioni. Snappy è uno dei più popolari di questi. Si basa su un sistema di packaging e distribuzione chiamato Click, che richiama l'iniziativa Ubuntu Touch. AppImage e FlatPack sono altri che potresti aver incontrato.

Questi sistemi incapsulano l'applicazione insieme a eventuali dipendenze e altri requisiti in un singolo file compresso. L'applicazione viene quindi eseguita in una sorta di mini-contenitore. È sandbox e separato da altre applicazioni. Le librerie e le altre risorse con cui l'applicazione è impacchettata 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 poiché ogni applicazione si trova nella propria sandbox.

Se non vengono installati nel solito modo, tuttavia, 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 ciò avviene dietro le quinte. Tutto quello che saprai è che hai installato un'applicazione e, ora, puoi accedervi.

Naturalmente, 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 una sola volta, come MySQL o Apache. Se due diversi snap le applicazioni richiedono le stesse risorse, ognuna porta la propria copia.

Questo è il compromesso per la semplicità dell'installazione e la rimozione del mal di testa da conflitto di risorse.

Installazione di snapd

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

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

Installare snapd su Fedora digita il seguente comando:

sudo dnf install snapd

Il comando "sudo dnf install snapd" in una finestra di terminale.

Se è necessario installarlo su Manjaro, utilizzare questi comandi:

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

Puoi usare il snap version comando per visualizzare la versione di snap cliente, snapd demone e il numero di serie del software. Verranno visualizzati anche il nome e la versione della distribuzione Linux e la versione del kernel.

Digita quanto segue:

snap version

Il comando "versione snap" in una finestra del terminale.

Installazione di pacchetti snap

È un processo abbastanza semplice da installare a snap pacchetto. Puoi usare snap cercare snap pacchetti, quindi installa quello che desideri.

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

snap find gimp

Lo "snap find gimp" in una finestra del terminale.

snap cerca corrispondenze all'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 di Name colonna, come mostrato di seguito:

sudo snap install gimp

Il comando "sudo snap install gimp" in una finestra del terminale.

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

Un messaggio "gimp 2.10.18 da Snapcrafters installato" in una finestra di terminale.

Puoi usare il df comando per verificare la capacità e l'utilizzo dei diversi file system configurati sul tuo computer Linux. Se convogliamo il suo output nel file grep comando e ricerca di “gimp”, isoliamo la voce per il pacchetto che abbiamo appena installato.

Digitiamo quanto segue:

df | grep gimp

Il comando "df | grep gimp" in una finestra di terminale.

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

RELAZIONATO: Come usare il comando grep su Linux

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

Possiamo usare il df comando per verificarlo rapidamente. Useremo il – t (tipo) opzione per limitare l'output a SquashFS solo tipi di file.

Digitiamo quanto segue:

df -t squashfs

Il comando "df -t squashfs" in una finestra terminale.

Il montato SquashFS i file system sono elencati. UN /dev/loop il file del dispositivo gestisce ciascuno di essi e ce ne sono 18.

File system SquashFS elencati in una finestra terminale.

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

Inoltre, quando si installa snapd, installa alcuni core snap pacchetti per gestire le esigenze di altri snap pacchi.

Possiamo usare il snap list comando, come mostrato di seguito, per elencare l'installazione snap pacchi:

snap list

Un elenco di snap in una finestra del terminale.

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

La fine dell'output dell'elenco di 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 a 18 SquashFS file system. Le colonne della tabella sono abbastanza autoesplicative, ma ecco alcuni chiarimenti:

  • Nome: Il nome del snap pacchetto che è stato installato.
  • Versione: Il numero di versione del software in snap pacchetto.
  • Rev: Il numero di revisione del snap pacchetto.
  • puntamento: Il canale questo snap monitor di pacchetti per gli aggiornamenti. Ce ne sono quattro:

    • Stabile: Il canale predefinito. Come indica il nome, questo canale contiene i pacchetti più stabili.
    • Candidato: Questo canale è meno stabile, ma molto vicino ad esso perché contiene software di livello candidato alla release, che è completo di codice. Esegue i test finali prima di passare al canale stabile.
    • Beta: Questo canale è in ritardo con la qualità del ciclo di sviluppo, ma non è garantito che sia stabile.
    • Bordo: Per i tester di build precoce. 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 snap pacchetto. Se era un editore verificato (e la finestra del tuo terminale supporta Unicode), vedrai un segno di spunta verde accanto al nome dell'editore. Se non è possibile mostrare un segno di spunta, vedrai un asterisco (*).
  • Appunti: Eventuali commenti o informazioni aggiuntive verranno visualizzati qui.

I canali di snap

Puoi usare il info opzione per ottenere una descrizione di a snap pacchetto.

Per fare ciò, digitiamo quanto segue:

snap info gtk-common-themes

Il comando "snap info gtk-common-themes" in una finestra del terminale.

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

UN snap il pacchetto controlla quattro volte al giorno per vedere se è disponibile una versione più recente del software dal canale che sta guardando o “monitorando”. Se si desidera cambiare canale a snap tracce del pacchetto, è possibile utilizzare il refresh e --channel opzioni.

Per fare ciò, digitiamo quanto segue:

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

Il comando "sudo snap refresh gtk-common-themes --channel = beta" in una finestra del terminale.

Se fosse disponibile una versione più recente del software, questo verrebbe installato, ma qui non era il caso. in ogni caso, il snap il pacchetto ora sta monitorando il canale beta. Non appena viene rilasciata una nuova versione beta, questa viene automaticamente scaricata e aggiornata.

Puoi usare il --list opzione per verificare se sono disponibili aggiornamenti per uno dei snap pacchetti installati sul tuo computer.

Per fare ciò, digitiamo quanto segue:

sudo snap refresh --list

Il comando "sudo snap refresh --list" in una finestra di terminale.

Ti verrà detto se qualcuno dei canali il snap i pacchetti sul tuo computer che stanno monitorando contengono nuove versioni del software.

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

sudo snap refresh gtk-common-themes

Il comando "sudo snap refresh gtk-common-themes" in una finestra del terminale.

Rimozione di un pacchetto snap

Per disinstallare a snap pacchetto, è possibile utilizzare l'opzione di rimozione, come mostrato di seguito:

sudo snap remove gimp

Il comando "sudo snap remove gimp" in una finestra di terminale.

Il cheat sheet a scatto

L'uso dei pacchetti di 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 package_name
  • Per vedere tutti i pacchetti installati: snap list
  • Per ottenere informazioni su un singolo pacchetto: snap info package_name
  • Per cambiare il canale che un pacchetto traccia per gli aggiornamenti: sudo snap refresh package_name --channel=channel_name
  • Per vedere se gli aggiornamenti sono pronti per eventuali pacchetti installati: sudo snap refresh --list
  • Per aggiornare manualmente un pacchetto: sudo snap refresh package_name
  • Per disinstallare un pacchetto: sudo snap remove package_name

Articoli correlati

Ultimi articoli