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.