Confronto Snap vs Flatpak vs Appimage

Confronto Snap vs Flatpak vs Appimage
Nuovi formati di imballaggio come SNAP, FlatPak e Appimage stanno fornendo pacchetti agnostici di distribuzione che funzionano sulla maggior parte delle distribuzioni Linux. Ciò risolve i problemi di imballaggio affrontati dagli sviluppatori di app che desiderano distribuire le loro app su più distribuzioni Linux. Ora possono concentrarsi su una build che funziona ovunque invece di passare attraverso diversi standard di imballaggio.

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

La tabella seguente riassume le differenze principali tra formati di file Snap, FlatPak e Appimage. La maggior parte di essi è autoesplicativa, altri punti sono stati spiegati sotto la tabella di confronto.

Affrettato Flatpak Appimage
Attificanti di autorizzazione Android Like Autorizzazione (GUI e CLI) NO
Supporto sandboxing
Sandboxing obbligatorio NO
Supporto a tema nativo Sì (con avvertimenti) Sì (con avvertimenti) Sì (con avvertimenti)
Supporto per librerie in bundle
Portabilità delle app Sì (con avvertimenti) Sì (con avvertimenti)
Supporto singolo eseguibile completamente contenuto (simile a .EXE Files in Windows) NO NO
App store online
Plugin per il software Desktop App Store NO
Supporto per app paralleli multi-versioni
Aggiornamenti automatici Sì (con avvertimenti)
Supporto OS Chrome (tramite contenitori Crostini)
Dimensione dell'app Varia ma più alto di Appimage Varia ma più alto di Appimage Il più basso
Numero di app disponibili nell'App Store Più alto Il più basso Da qualche parte nel mezzo

Controlli di autorizzazione per gli utenti

SNAP fornisce interfacce della riga grafica e di comando per le autorizzazioni controllate dall'utente. È possibile utilizzare l'app "Ubuntu software" preinstallata per gestire le autorizzazioni di un'app SNAP.

Per vedere le autorizzazioni di un'app SNAP utilizzando l'interfaccia della riga di comando, eseguire il comando di seguito:

$ snap connessioni cromo

Sostituisci "Chromium" con il nome della tua app SNAP.

Per vedere un elenco di tutte le app SNAP installate, eseguire il comando di seguito:

Elenco $ snap

Per concedere l'autorizzazione alla fotocamera a Chromium Snap, utilizzare il comando di seguito:

$ snap connect cromo: fotocamera

Per revocare l'autorizzazione della fotocamera, eseguire il comando di seguito:

$ snap schisconnect cromo: fotocamera

I comandi appropriati per la gestione dell'autorizzazione sono disponibili nella colonna "Plug" (mostrata nello screenshot sopra).

Flatpak fornisce anche un'interfaccia per la concessione e la revoca delle autorizzazioni. È possibile utilizzare l'app software GNOME (richiede GNOME 3.32.x) Per gestire le autorizzazioni utilizzando un metodo grafico. Per vedere le autorizzazioni di un'app FlatPak, eseguire il comando di seguito:

$ Flatpak Info-Show-Permissions Org.kde.piattaforma

Sostituire “org.kde.Piattaforma "con il nome della tua app flatpak.

Per visualizzare un elenco di tutte le app FlatPak installate sul sistema, eseguire il comando di seguito:

$ Elenco Flatpak

Per modificare le autorizzazioni di un'app FlatPak, è necessario modificare i valori delle variabili mostrate nello screenshot 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 di autorizzazione granulare a partire da ora, ma gli sviluppatori hanno suggerito che in futuro potrebbero essere implementati i controlli dell'autorizzazione in stile Android.

Sandboxing

Snap, FlatPak e Appimage Support Sandboxed App Amplianti fuori dalla scatola. Un sandbox è un ambiente (o contenitore / filesystem / archivio) completamente isolato e distaccato dal sistema host. Qualsiasi interazione con il sistema host viene eseguita utilizzando controlli API e autorizzazioni limitate. Alcune di queste autorizzazioni richiedono esplicitamente opt-in dagli utenti o possono essere completamente disabilitate dagli utenti finali. Un'app sandbox è sicura di qualsiasi altra app che ha pieno accesso al sistema host. Tutte le app Android funzionano in un sandbox e queste tre formato di imballaggio funzionano su un'idea simile.

Supporto a tema nativo

Tutti e tre i formati di imballaggio supportano l'aspetto nativo per le app GTK e QT, anche se con alcune limitazioni. Ad esempio, Snap e Flatpak richiedono che i temi del sistema siano confezionati nei rispettivi formati. Se si utilizzano temi e icone di terze parti, potresti non ottenere icone tema, cursore e app corretti. L'integrazione è migliorata sugli straordinari ma non sono leggermente all'altezza delle app installate da un gestore di pacchetti ufficiali di una distribuzione.

Portabilità delle app

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

Aggiornamenti automatici

Le app Snap e FlatPak sono installate da repository e app di applicazione centralizzati possono essere automaticamente aggiornati senza intervento dell'utente. Appimage manca di un solido meccanismo di aggiornamento automatico. Gli utenti devono scaricare manualmente un nuovo binario Appimage e sostituire uno esistente per installare gli aggiornamenti. I manutentori di app di appimage a volte includono il proprio meccanismo di aggiornamento che controlla periodicamente aggiorna la disponibilità 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, richiede ancora il download dello strumento di aggiornamento e lo utilizzano manualmente con un binario di Appimage esistente. Non è ancora disponibile un meccanismo di aggiornamento a mani libere.

Dimensione dell'app

Appimage ha un'impronta più bassa delle dimensioni dell'app, molto probabilmente perché serve binari in formato compresso. Le dimensioni dell'app Snap e Flatpak variano notevolmente da app a app ed è difficile da accertare che fornisce una dimensione di installazione più bassa. Solo per riferimento, Inkcape 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 per gli sviluppatori e per gli utenti finali. Questi formati di imballaggio consentono una consegna molto più veloce di app sicure. Aprino anche porte per gli sviluppatori che si sono allontanati da Linux a causa dei diversi standard di imballaggio utilizzati in 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 saranno fissati agli straordinari. I pacchetti universali di distribuzione incrociata sono il futuro e la loro adozione aumenterà. Lentamente ma costantemente, le distribuzioni possono spostarsi su build Snap, FlatPak o Appimage in futuro ad eccezione delle librerie principali e dei pacchetti essenziali necessari per il funzionamento del sistema operativo.