Quali sono le differenze tra snap, appimage, flatpak e altri?


105

Recentemente ho ricevuto questa domanda dagli studenti e anche se ho molte informazioni da offrire, non ho trovato una fonte che possa indicare alle persone dove possono leggere una risposta di aggiornamento (ho trovato molte informazioni errate e informazioni obsolete ). Quindi, alcune delle domande che ho per i formati di pacchetto come snap, appimage, flatpak e altre in questa evoluzione dei sistemi di packaging universali sono:

  • Chi ha creato il formato del pacchetto?
  • Quali funzionalità offre?
  • Quali caratteristiche sono uniche ad esso? (Che gli altri non hanno ancora)
  • Chi lo supporta?
  • Quali distribuzioni lo usano?
  • Quale focus ha il pacchetto? (Per desktop, cloud, mobile, ecc.)
  • Quali sono più attivamente sviluppati?

Risposte:


68

Ecco un lungo confronto tabellare delle funzionalità AppImage vs Snap vs. Flatpak. È dal Wiki di AppImage su GitHub :

Confronto tra AppImage vs. Snap vs. Flatpack


43
Penso che valga la pena sottolineare che questo grafico è costruito da una prospettiva AppImage. Significato, il set di funzionalità predefinito è il set di funzionalità di AppImage e gli altri vengono confrontati con le sue funzionalità. Questo dà un vantaggio parziale ad AppImage. È anche un po 'obsoleto. Ad esempio, Snap ha aggiunto il supporto per i temi in autunno.
Dan,

1
@Dan: Se sei a conoscenza del supporto aggiunto da Snap, perché non modifichi semplicemente nel grafico? Inoltre, se conosci altre funzionalità presenti in Snap e / o Flatpak: sentiti invitato a modificare il grafico con i rispettivi elementi nel wiki di AppImage ...
Kurt Pfeifle

11
Non sono sicuro di come si possa dire che @Kurt. Dai un'occhiata alla sezione "Obiettivi", come esempio. Mostra esclusivamente gli obiettivi di AppImage, come se nessuno degli altri progetti avesse obiettivi. Come se solo gli obiettivi che AppImage avesse importanza.
Dan,

5
Ho capito bene: potrei modificare il wiki. Tuttavia, la tua risposta è un'immagine gigante che presumibilmente rimarrà così com'è per sempre, anche se la wiki cambia. Penso che la distorsione meriti di essere menzionata nel contesto della tua risposta per i futuri lettori di Ask Ubuntu.
Dan

2
@Dan: ho modificato la risposta il 4 luglio per inserire una versione aggiornata dello screenshot dal sito Web (esattamente per includere alcune modifiche apportate al wiki). Qual è il problema per te nel modificare il Wiki originale, creare un nuovo screenshot e quindi suggerire una modifica di questa risposta con il nuovo screenshot?
Kurt Pfeifle,

51

Gli snap sono stati creati da Canonical per Ubuntu. I principali vantaggi degli snap sono:

  • Indipendenza dalle dipendenze: tutte le librerie e le dipendenze sono incluse nel pacchetto. Ciò consente anche di avere più versioni dello stesso programma.
  • Sandboxing: gli snap utilizzano AppArmor modificato per eseguire il sandbox delle applicazioni
  • Aggiornamenti Delta: gli snap dovrebbero consentire anche gli aggiornamenti delta

Lo svantaggio principale degli snap è che il software può utilizzare solo le librerie incluse nel suo pacchetto. Questo è un potenziale rischio per la sicurezza in quanto l'autore del pacchetto deve mantenere tutte le librerie corrette e aggiornate.

Gli snap possono attualmente essere eseguiti in Ubuntu, Arch Linux, Fedora, Linux Mint, CentOS e Gentoo. Sono anche usati in Ubuntu Touch. Sono progettati per desktop, server, telefoni, IoT e router.

Flatpak ha gli stessi vantaggi degli snap. Tuttavia, utilizza Namespace invece di AppArmour per il sandboxing. La differenza principale è che Flatpaks può sia utilizzare librerie incluse nel pacchetto sia librerie condivise da un altro Flatpak.

Lo sviluppatore di Flatpak è il dipendente Red Hat Alexander Larsson. Il software Flatpak è attualmente disponibile in Arch Linux, Debian, Fedora, Mageia, Solus e Ubuntu. Si concentra solo sui desktop.

AppImages sono sviluppati da Simon Peter. Come in snap o Flatpak, il pacchetto include tutte le librerie necessarie per eseguire il programma. I programmi AppImage non sono in modalità sandbox e non richiedono l'esecuzione dei diritti di root. Secondo il sito Web del progetto, AppImages dovrebbe funzionare su Arch Linux, Centos, Debian, Fedora, OpenSUSE, Red Hat Linux e Ubuntu.


3
Solus ha annunciato il supporto per flatpak nel gennaio 2017
Anthon,

8
Tutti avrebbero dovuto basarsi sull'appimage. Invece di reinventare la stessa ideologia e introdurre frammentazione e confusione. Inoltre, poiché questi pacchetti portatili hanno tutte le librerie, avranno dimensioni considerevolmente più pesanti rispetto a un'app che utilizza librerie condivise installate tramite apt o .deb. Se devi sapere qual è il più popolare, flatpak sta attualmente battendo gli snap.
risposta Cercatore

Con l'attacco Spectre ora in libertà, sospetto che ci sarà meno interesse per le librerie condivise per motivi di sicurezza. :-)
Chris

4
@answerSeeker: il tuo commento sul fatto che i pacchetti portatili siano "di dimensioni notevolmente maggiori rispetto a un'app che utilizza librerie condivise installate tramite apt o .deb" non è necessariamente supportato dai fatti della vita reale. AppImages e Snap sono compressi in immagini SquashFS (non vero per Flatpak). Non vengono mai estratti su disco, nemmeno durante il runtime. AppImages, quando è in esecuzione, si monta automaticamente su un mountpoint creato temporaneamente /tmp/.mount_<random-chars>ed esegue da lì - ancora compresso! Vedi i numeri per l'esempio di LibreOffice nello screenshot della mia risposta di seguito ...
Kurt Pfeifle,

1
@PabloBianchi: le AppImages più recenti (della più recente varietà di "tipo 2" ) possono avere un meccanismo di aggiornamento integrato. Ciò scarica un delta binario diff dalla posizione originale di AppImage, risparmiando in dimensioni e tempo di download, una volta che una nuova versione è disponibile e dopo che l'utente ha indicato che lo desiderava. Gli strumenti appimageupdatetool(CLI) e AppImageUpdate-Qt(GUI) aiutano in questo.
Kurt Pfeifle,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.