Introduzione
Rispetto ad altri sistemi operativi tradizionali, Linux adotta un approccio diverso alla gestione del software. Il software in Linux è tradizionalmente organizzato in repository. I repository contengono applicazioni e tutte le dipendenze necessarie per eseguirle.
Sebbene l'utilizzo dei repository sia conveniente per molte ragioni, spesso rappresenta un ostacolo per gli utenti che non sono esperti di tecnologia. Negli ultimi due anni sono stati creati diversi sistemi di packaging alternativi per rendere l'esperienza Linux più user-friendly.
In questo articolo di confronto imparerai le differenze tra il sistema di confezionamento Snap e il gestore di pacchetti APT.
Cos'è Snap?
Snap è un pacchetto software e un sistema di distribuzione che utilizza pacchetti autonomi chiamati snap per fornire software agli utenti. Gli snap racchiudono tutte le dipendenze richieste da un programma in un unico pacchetto. In questo modo, l'app è indipendente dal sistema, il che significa che può essere eseguita in modo nativo su qualsiasi distribuzione Linux che supporti Snap.
Mentre APT ottiene principalmente pacchetti dai repository ufficiali di una distribuzione, Snap consente agli sviluppatori di fornire le loro app direttamente agli utenti tramite Snap Store. Gli sviluppatori possono anche pubblicare gli snap direttamente sui loro siti web.
Lo strumento per la gestione degli snap si chiama snapd . È un demone che consente a un sistema di eseguire pacchetti snap. Gli utenti interagiscono con snapd utilizzando lo snap
cliente.
Di seguito è riportato un esempio di installazione di Thunderbird utilizzando lo snap
comando:
Cos'è APT?
APT (Advanced Package Tool) è un gestore di pacchetti software per l'installazione e la rimozione di pacchetti su sistemi basati su Debian. APT automatizza il processo di recupero, configurazione, aggiornamento, installazione e rimozione dei pacchetti. APT è un front-end del sistema di gestione dei pacchetti di base di Debian dpkg .
Uno dei principali vantaggi di APT è il modo in cui gestisce le dipendenze software. Dopo che un utente ha inviato un comando per installare un pacchetto, APT cerca nei repository le dipendenze del pacchetto e installa quelle che non sono già state installate sul sistema.
Lo strumento che APT utilizza principalmente per interfacciarsi con gli utenti è apt
. L'utilità offre i più popolari apt-get e apt-cache
comandi, che sono considerati meno user-friendly.
Lo screenshot mostra l'installazione di Thunderbird utilizzando apt
:
Snap vs. APT:Differenze
Prima di entrare nel dettaglio delle differenze tra Snap e APT, è necessario capire i livelli a cui possiamo confrontarli.
La tabella seguente spiega la terminologia e fornisce i principali punti di confronto:
Scatto | APT | |
---|---|---|
Tipo di pacchetto | .snap | .deb |
Nome utensile | scatta | APT |
Strumento CLI | snap | apt |
Formato | Archivio SquashFS | archivio ar |
Disponibile in | Snap Store | Repository Debian |
Dimensioni dell'installazione | Più grande | Più piccolo |
Dipendenze | Contenuto nella confezione | Condiviso |
Aggiornamenti | Automatico | Manuale |
Confinamento di sicurezza | Confinato | Reclusione limitata |
Installazioni multiple | Possibile | Non possibile |
Installazioni in più versioni | Possibile | Non possibile |
Formato pacchetto
Scatta utilizza .snap
file, disponibili per il download nello Snap Store o sul sito Web del loro sviluppatore. Il .snap
contiene un'applicazione, le sue dipendenze e i metadati in un file system compresso SquashFS.
Le applicazioni Snap sono containerizzate, in modo simile al modo in cui Docker confeziona i suoi container. Tuttavia, a differenza dei contenitori Docker, le app snap hanno un accesso limitato al sistema host, principalmente per l'archiviazione dei file di configurazione e l'utilizzo dell'I/O del sistema.
APT utilizza .deb
file da repository software online per ciascuna distribuzione Linux che li supporta. Un .deb
file è un archivio Unix, che include due archivi tar. Un archivio contiene le informazioni di controllo, mentre l'altro contiene i file utilizzati per l'installazione del pacchetto.
Dimensioni del pacchetto
Scatti sono autonomi, il che si traduce in un .snap
relativamente grande file. Quando un utente installa uno snap, il file viene decompresso e montato come dispositivo di loopback di sola lettura nella home directory.
Un'applicazione installata tramite APT è di dimensioni inferiori rispetto alla sua controparte snap perché non ha bisogno di raggruppare le dipendenze dei pacchetti.
Dipendenze
Scatta raggruppa le dipendenze del pacchetto all'interno del pacchetto. Sebbene questo approccio influisca negativamente sulle dimensioni del pacchetto, il vantaggio principale è che gli utenti hanno sempre la versione supportata e testata del pacchetto.
APT utilizza un approccio a dipendenze condivise. Quando un utente emette un apt install
comando, APT legge l'elenco delle dipendenze, controlla se il sistema ha già installato alcuni dei pacchetti e installa quelli mancanti. Questa tecnica mantiene una piccola impronta di memoria.
Facilità d'uso
La differenza nella facilità d'uso per gli utenti finali non è significativa. Scatta le app sono universali e più pratiche da mantenere per gli sviluppatori e il rilascio di un aggiornamento è un processo semplice per modificare un singolo pacchetto.
D'altra parte, APT controlla i repository per trovare gli aggiornamenti. Quando un aggiornamento è pronto, il sistema di repository richiede una versione separata per ogni distribuzione (Ubuntu, Linux Mint, Pop! OS, ecc.) e ogni versione della distribuzione (Ubuntu 18.04, Ubuntu 20.04, ecc.). Questo metodo richiede tempo e talvolta comporta ritardi per determinate distribuzioni.
Velocità
Scatta ha tempi di avvio più lunghi di APT poiché il sistema operativo si decomprime, scatta al primo utilizzo per risparmiare spazio su disco. Tuttavia, gli snap sono più lenti solo al primo avvio:la differenza diminuisce o scompare completamente al secondo avvio.
Aggiornamenti
Lo scatto il processo di aggiornamento è automatico. Gli utenti non possono impedire l'aggiornamento di un'app snap, ritardano solo il processo. Gli sviluppatori di snap non sono limitati in termini di quando possono rilasciare un aggiornamento.
APT garantisce all'utente il controllo completo sul processo di aggiornamento. Tuttavia, quando una distribuzione interrompe un rilascio, di solito blocca i deb e non li aggiorna per la durata del rilascio. Pertanto, Snap è la soluzione migliore per gli utenti che preferiscono le versioni più recenti dell'app.
Integrazione della GUI
Scatti sono progettati per essere universali. In quanto tali, non si integrano perfettamente con le GUI di varie distribuzioni.
Di recente c'è stato uno sviluppo nella comunità Snap per quanto riguarda l'integrazione dei temi. Include l'introduzione di un servizio in background che controlla le modifiche al tema e offre agli utenti la possibilità di regolare la propria app in modo che sia conforme al tema del sistema operativo. Tuttavia, questo è un lavoro in corso e gli snap non si integrano ancora completamente nel sistema operativo host.
Dall'altro lato, .deb
file utilizzati da APT sono specifici della distribuzione e della versione, il che si traduce nel fornire l'esperienza Linux predefinita in termini di integrazione dei temi.
Sicurezza
Scatti supportano la convalida della firma e, data la loro natura limitata, sono considerati una soluzione sicura per la distribuzione delle app. Tuttavia, poiché l'editore fornisce l'app direttamente all'utente, l'utente deve fidarsi dell'editore. Non vengono eseguite revisioni esterne.
D'altra parte, ogni distribuzione Linux esamina i debs inclusi nel proprio repository. Quindi, APT gli utenti possono essere sicuri che l'app provenga da una fonte attendibile. Ciò non si applica a repository o deb di terze parti disponibili sui siti Web degli editori.
Snap vs. APT:quale scegliere?
Scegli Scatta se:
- Non vuoi che pacchetti non necessari siano integrati nel tuo sistema. Con Snaps, i pacchetti rimangono confinati nel
.snap
pacchetto. - Vuoi assicurarti di avere la versione più aggiornata dell'app. Aggancia gli aggiornamenti automaticamente e continuamente, senza blocchi delle funzionalità per distribuzioni specifiche.
- Vuoi isolare un'app.
Scegli APT se:
- Preferisci che le app vengano esaminate dalla distribuzione che stai utilizzando.
- Sei preoccupato per la conservazione dello spazio di archiviazione. Le app installate da APT condividono le loro dipendenze.
- Vuoi che le app si integrino correttamente nell'ambiente della GUI.