Come lavorare con i pacchetti Snap su Linux
Pubblicato: 2022-01-29 Quando installi pacchetti software Linux con snap
, puoi dire addio all'inferno delle dipendenze e alla rottura di 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 era un'esperienza potenzialmente frustrante. Installerai qualcosa solo per trovare una libreria particolare o un'altra dipendenza mancante o obsoleta. Dovresti quindi dare la caccia alla risorsa mancante e installarla, solo per trovare un'altra applicazione dipendente dalla versione della libreria che hai appena sostituito. Correggine uno, interrompi 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 versioni diverse della stessa applicazione installate. Oppure, se utilizzi due applicazioni che si scontrano perché sono legate a versioni specifiche, ma diverse, di una libreria.
Una soluzione a questi problemi è rappresentata dai sistemi di imballaggio e distribuzione delle applicazioni. Snappy è uno dei più popolari di questi. Si basa su un sistema di confezionamento e distribuzione chiamato Click, che si rifà all'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 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 o richiesta sono disponibili solo per essa.
Non sono installati nel senso tradizionale, quindi non creano problemi con altre applicazioni che richiedono versioni diverse delle stesse risorse. Puoi persino installare ed eseguire applicazioni che richiedono versioni della libreria in conflitto perché ogni applicazione si trova nella propria sandbox.
Tuttavia, se non vengono installati nel solito modo, come vengono gestiti? Bene, il singolo file del pacchetto viene scaricato, decompresso e montato come file system virtuale SquashFS
. 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, hai accesso ad essa.
Naturalmente, poiché ogni file di pacchetto deve contenere tutte le risorse necessarie all'applicazione, i file di pacchetto possono essere di grandi dimensioni. È anche facile duplicare una risorsa che normalmente installeresti solo una volta, come MySQL o Apache. Se due diverse applicazioni snap
richiedono le stesse risorse, ciascuna porta la propria copia.
Questo è il compromesso per la semplicità dell'installazione e la rimozione dei mal di testa dei conflitti di risorse, però.
Installazione di snapd
Snappy è stato introdotto con Ubuntu 16.04, quindi se stai utilizzando quella versione o successive, sei già a posto. Sulla nostra macchina, Snappy è stato installato su Manjaro 18.04, ma abbiamo dovuto installarlo su Fedora 31.
snap
è sia il nome dei file del pacchetto che il comando che usi 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
Se devi installarlo su Manjaro, usa questi comandi:
sudo pacman -Sy scattò
sudo systemctl enable --now snapd.socket
È possibile utilizzare il comando snap version
per visualizzare la versione del client snap
, del demone snapd
e il numero di serie del software. Verranno visualizzati anche il nome e la versione della tua distribuzione Linux e la versione del kernel.
Digita quanto segue:
versione a scatto
Installazione di pacchetti snap
È un processo piuttosto semplice per installare un pacchetto snap
. Puoi usare snap
per cercare i pacchetti snap
e quindi installare quello che desideri.
Digitiamo quanto segue per cercare e installare l'editor di immagini gimp:
trova gimp
snap
cerca 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 della colonna Name
, come mostrato di seguito:
sudo snap install gimp
Durante il download, la percentuale di completamento aumenta e una barra di avanzamento si insinua nella parte sinistra della finestra del terminale. Al termine dell'installazione, viene visualizzato un messaggio (come mostrato di seguito) che informa che il pacchetto è stato installato.
Puoi utilizzare il comando df
per verificare la capacità e l'utilizzo dei diversi file system configurati sul tuo computer Linux. Se convogliamo il suo output nel comando grep
e cerchiamo "gimp", isoliamo la voce per il pacchetto che abbiamo appena installato.
Digitiamo quanto segue:
df | grep gimp
Questo ci mostra che il pacchetto snap è stato montato come se fosse un file system. Il punto di montaggio è nella directory snap
qui: /snap/gimp/252
. Il "252" è il numero di rilascio di questa versione di gimp
.
CORRELATI: Come utilizzare il comando grep su Linux
Il file system è elencato come: /dev/loop18
. I file del dispositivo di loop vengono utilizzati per rendere accessibili i file normali come dispositivi a blocchi. In genere vengono utilizzati per montare i file system nelle immagini disco. In questo caso, stanno montando il filesystem SquashFS
all'interno del pacchetto snap
. Il "18" significa che questo è il 18° file del 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
Vengono elencati i file system SquashFS
montati. Un file di dispositivo /dev/loop
gestisce ciascuno di essi e ce ne sono 18.
Ciascun file system è montato su una directory all'interno della directory /snap
. Tuttavia, questo non significa che su questo computer siano installati 18 diversi pacchetti di snap
. Questa è una distribuzione Ubuntu, quindi alcuni pacchetti snap
sono installati immediatamente e ne abbiamo appena installato un altro.
Inoltre, quando si installa snapd
, vengono installati alcuni pacchetti snap
principali per gestire le esigenze di altri pacchetti snap
.
Possiamo usare il comando snap list
, come mostrato di seguito, per elencare i pacchetti snap
installati:
lista a scatto
L'output era un po' largo, quindi la fine degli elenchi è mostrata di seguito.
Ecco l'intero elenco:
Nome Versione Note dell'editore di monitoraggio delle rev core 16-2.43.3 8689 canonico stabile* core core18 20200124 1668 base canonica stabile* gimp 2.10.18 252 snapcrafter stabili - gnome-3-26-1604 3.26.0.20191114 98 stabile/... canonico* - gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 canonico stabile* - gnome-calculator 3.34.1+git1.d34dc842 544 stable/... canonical* - gnome-characters v3.32.1+git3.b9120df 399 stabile/... canonical* - gnome-logs 3.34.0 81 stabile/... canonico* - gnome-system-monitor 3.32.1-3-g0ea89b4922 127 stabile/... canonico* - gtk-common-themes 0.1-28-g1503258 1440 stabile/... canonico* -
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
snap
che è stato installato. - Versione : il numero di versione del software nel pacchetto
snap
. - Rev : il numero di revisione del pacchetto
snap
. - Tracciamento : il canale monitorato da questo pacchetto
snap
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 vicino ad esso perché contiene software di livello candidato alla versione, che è completo di codice. Passa attraverso il test finale prima di essere spostato sul canale stabile.
- Beta: questo canale è di qualità in ritardo del ciclo di sviluppo, 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 : l'individuo, l'azienda o l'organizzazione che ha rilasciato il pacchetto
snap
. Se si trattava di 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 appariranno qui.
I canali a scatto
Puoi usare l'opzione info
per ottenere una descrizione di un pacchetto snap
.
Per fare ciò, digitiamo quanto segue:
snap info gtk-common-themes
Possiamo vedere quale canale sta tracciando 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 "tracciando". Se vuoi cambiare il canale in un snap
, puoi usare le opzioni refresh
e --channel
.
Per fare ciò, digitiamo quanto segue:
sudo snap refresh gtk-common-themes --channel=beta
Se fosse disponibile una versione più recente del software, sarebbe stata installata, ma non era il caso qui. Tuttavia, il pacchetto snap
sta ora tracciando il canale beta. Non appena viene rilasciata una nuova versione beta, viene scaricata e aggiornata automaticamente.
È possibile utilizzare l'opzione --list
per verificare se sono disponibili aggiornamenti per uno qualsiasi dei pacchetti snap
installati sul computer.
Per fare ciò, digitiamo quanto segue:
sudo snap refresh --list
Ti verrà detto se uno qualsiasi dei canali monitorati dai pacchetti snap
sul tuo computer contiene versioni software più recenti.
Se è disponibile una versione più recente del software, è possibile utilizzare l'opzione di refresh
, come mostrato di seguito, per forzare manualmente un aggiornamento:
sudo snap refresh gtk-common-themes
Rimozione di un pacchetto snap
Per disinstallare un pacchetto snap
, puoi utilizzare l'opzione di rimozione, come mostrato di seguito:
sudo snap rimuovi gimp
Il Cheat Sheet a scatto
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 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, un pacchetto tiene traccia degli aggiornamenti:
sudo snap refresh package_name --channel=channel_name
- Per vedere se gli aggiornamenti sono pronti per qualsiasi pacchetto installato:
sudo snap refresh --list
- Per aggiornare manualmente un pacchetto:
sudo snap refresh package_name
- Per disinstallare un pacchetto:
sudo snap remove package_name
Comandi Linux | ||
File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · converti · rclone · shred · srm | |
Processi | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Rete | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
CORRELATI: I migliori laptop Linux per sviluppatori e appassionati