Confezione

Confronto Snap vs Flatpak vs AppImage

Confronto Snap vs Flatpak vs AppImage
Nuovi formati di packaging come Snap, Flatpak e AppImage forniscono pacchetti indipendenti dalla distribuzione che funzionano sulla maggior parte delle distribuzioni Linux. Questo risolve i problemi di packaging affrontati dagli sviluppatori di app che desiderano distribuire le proprie app su più distribuzioni Linux. Ora possono concentrarsi su una build che funzioni ovunque invece di passare attraverso diversi standard di imballaggio different.

Questo articolo elencherà le principali differenze tra questi tre formati di imballaggio dal punto di vista degli utenti finali. Le differenze nell'architettura di confezionamento e la facilità di confezionamento dal punto di vista degli sviluppatori non saranno trattate qui.

La tabella seguente riassume le principali differenze tra i formati di file Snap, Flatpak e AppImage. La maggior parte si spiega da sé, altri punti sono stati spiegati sotto la tabella di confronto.

Snap Flatpak AppImage
Attiva/disattiva controlli di autorizzazione Android Like (GUI e CLI) No
Supporto sandbox
Sandboxing obbligatorio No
Supporto per temi nativi Sì (con avvertenze) Sì (con avvertenze) Sì (con avvertenze)
Supporto per librerie in bundle
Portabilità dell'app Sì (con avvertenze) Sì (con avvertenze)
Supporto eseguibile singolo completamente contenuto (simile a .exe in Windows) No No
App Store online
Plugin per il software dell'App Store desktop No
Supporto per applicazioni parallele multi-versione
Aggiornamenti automatici Sì (con avvertenze)
Supporto Chrome OS (tramite contenitori Crostini)
Dimensione dell'app Varia ma superiore a AppImage Varia ma superiore a AppImage più basso
Numero di app disponibili nell'App Store Più alta più basso Da qualche parte nel mezzo

Controlli delle autorizzazioni per gli utenti

Snap fornisce sia interfacce grafiche che a riga di comando per le autorizzazioni controllate dall'utente. Puoi utilizzare l'app "Ubuntu Software" preinstallata per gestire i permessi di un'app snap snap.

Per visualizzare le autorizzazioni di un'app snap utilizzando l'interfaccia della riga di comando, eseguire il comando seguente:

$ connessioni a scatto cromo

Sostituisci "chromium" con il nome della tua app snap.

Per visualizzare un elenco di tutte le app snap installate, esegui il comando seguente:

$ snap list

Per concedere l'autorizzazione della fotocamera allo snap al cromo, utilizzare il comando seguente:

$ snap connect cromo:fotocamera

Per revocare l'autorizzazione della fotocamera, esegui il comando seguente:

$ snap disconnetti cromo:fotocamera

I comandi appropriati per la gestione dei permessi possono essere trovati nella colonna "Plug" (mostrata nella schermata sopra).

Flatpak fornisce anche un'interfaccia per concedere e revocare le autorizzazioni. Puoi usare l'app GNOME Software (richiede GNOME 3.32.x) gestire i permessi utilizzando un metodo grafico. Per vedere le autorizzazioni di un'app flatpak, esegui il comando seguente:

$ flatpak info --show-permissions org.kde.piattaforma

Sostituisci “org.kde.Platform” con il nome della tua app Flatpak.

Per visualizzare un elenco di tutte le app flatpak installate sul tuo sistema, esegui il comando seguente:

$ lista flatpak

Per modificare i permessi di un'app flatpak, devi modificare i valori delle variabili mostrate nella schermata sopra. Ad esempio, il comando seguente renderà l'intero filesystem disponibile per un'app flappak:

$ sudo flatpak override org.kde.Piattaforma --filesystem=host

AppImage non supporta i controlli delle autorizzazioni granulari al momento, ma gli sviluppatori hanno suggerito che i controlli delle autorizzazioni in stile Android potrebbero essere implementati in futuro.

sandbox

Snap, Flatpak e AppImage supportano immediatamente ambienti di app in sandboxed. Una sandbox è un ambiente (o contenitore/filesystem/archivio) completamente isolato e distante dal sistema host. Qualsiasi interazione con il sistema host viene eseguita utilizzando API limitate e controlli di autorizzazione. Alcune di queste autorizzazioni richiedono esplicitamente l'attivazione da parte degli utenti o possono essere disattivate completamente dagli utenti finali. Un'app in modalità sandbox è sicura rispetto a qualsiasi altra app che ha pieno accesso al sistema host. Tutte le app Android vengono eseguite in una sandbox e questi tre formati di packaging funzionano su un'idea simile.

Supporto per temi nativi

Tutti e tre i formati di packaging supportano l'aspetto nativo per le app GTK e Qt, anche se con alcune limitazioni. Ad esempio, Snap e Flatpak richiedono che i temi di sistema siano impacchettati nei rispettivi formati. Se stai utilizzando temi e pacchetti di icone di terze parti, potresti non ottenere il tema corretto, le icone del cursore e delle app. L'integrazione è migliorata nel tempo, ma sono leggermente inferiori rispetto alle app installate dal gestore di pacchetti ufficiale di una distribuzione.

Portabilità dell'app

Un'app AppImage è un singolo file eseguibile (simile a Windows' .file exe). Puoi condividerlo facilmente tra i sistemi o caricarlo su cloud. Le app Snap e Flatpak possono essere rese portabili includendo l'app stessa, così come i repository figlio da cui l'app dipende. Tuttavia, il processo non è facile come AppImage e richiede l'utilizzo di più comandi per ottenere gli stessi risultati.

Aggiornamenti automatici

Le app Snap e Flatpak vengono installate da repository di applicazioni centralizzati e le app possono essere aggiornate automaticamente senza l'intervento dell'utente. AppImage non dispone di un robusto meccanismo di aggiornamento automatico. Gli utenti devono scaricare manualmente il nuovo binario AppImage e sostituire quello esistente per installare gli aggiornamenti. I manutentori dell'app AppImage a volte includono il proprio meccanismo di aggiornamento che controlla periodicamente la disponibilità degli aggiornamenti sui propri server o richiede l'intervento dell'utente. Di recente, gli sviluppatori di AppImage hanno fornito uno strumento per aggiornare i binari esistenti fornendo aggiornamenti delta. Tuttavia, è ancora necessario scaricare lo strumento di aggiornamento e utilizzarlo manualmente con un binario AppImage esistente. Non è ancora disponibile alcun meccanismo di aggiornamento a mani libere per AppImage.

Dimensione dell'app

AppImage ha l'ingombro dell'app più basso, molto probabilmente perché serve binari in formato compresso. Le dimensioni delle app Snap e Flatpak variano notevolmente da un'app all'altra ed è difficile stabilire quale fornisce dimensioni di installazione inferiori installation. Solo per riferimento, Inkscape AppImage al momento della stesura di questo articolo era di circa 98 MB, Snap era di circa 183 MB e Flatpak era di circa 109 MB.

Conclusione

I pacchetti di app universali sono una situazione vantaggiosa sia per gli sviluppatori che per gli utenti finali. Questi formati di packaging consentono una consegna molto più rapida di app sicure. Aprono anche le porte agli sviluppatori che si sono allontanati da Linux a causa dei diversi standard di packaging utilizzati nelle diverse distribuzioni. Ci sono alcuni problemi che devono essere risolti in questi tre formati di imballaggio. Tuttavia, sono tutti in fase di sviluppo attivo e questi problemi verranno risolti nel tempo. I pacchetti di distribuzione incrociata universali sono il futuro e la loro adozione aumenterà. Lentamente ma costantemente, le distribuzioni potrebbero passare a build Snap, Flatpak o AppImage in futuro, ad eccezione delle librerie di base e dei pacchetti essenziali necessari per il funzionamento del sistema operativo.

I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...
Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...