Abbiamo spiegato cosa Flatpak, Snap eAppImage sono nell'articolo Come si impilano? pubblicato più di 2 anni fa e sebbene le tecnologie siano migliorate molto da allora, le sto valutando dal punto di vista di uno sviluppatore di software.
Sandbox / Confinamento
Puoi eseguire AppImage senza sandbox e usarlo con diversi sandbox, ad es. AppArmor e Firejail.
Snap può essere eseguito senza sandboxing ma non è possibile utilizzarlo con diversi sandbox poiché è strettamente accoppiato a AppArmor.
Flatpak non può essere eseguito senza sandbox né può essere utilizzato con sandbox diversi da Bubblewrap .
Installazione / Esecuzione
Si può eseguire un AppImage dopo aver impostato l'eseguibile senza accesso root, senza decomprimerlo e su un sistema offline.
Snap deve essere installato da snapd, non può essere eseguito senza accesso root fino a dopo l'installazione né il suo file scaricabile può essere posizionato accanto a exe
e dmgche gli utenti possono installare su sistemi offline, ma può essere eseguito da una sorgente non compressa.
Flatpak deve essere installato da uno Flatpak strumento lato client, non può essere eseguito senza accesso root fino a dopo l'installazione, non può essere eseguito da un sorgente non compressa. Inoltre, i file flatpakref
richiedono Internet e flatpak i bundle richiedono un runtime per essere installati.
AppImage può archiviare ed eseguire applicazioni da posizioni non standard come CD-ROM e condivisioni di rete. Flatpak può fare lo stesso dopo qualche configurazione, mentre Snap attualmente non può.
In questa sezione, AppImage prende la torta perché le sue applicazioni sono più flessibili.
Distribuzione e aggiornamenti delle applicazioni
Il repository centrale per Flatpak e Snap è FlatHub, e Snap Store rispettivamente. Gli utenti possono scaricare AppImages da AppImageHub, una piattaforma di catalogazione per il software disponibile come bundle AppImage.
A differenza di AppImage e FlatPak, tuttavia, ilSnap Store è l'unico app store dominante con un repository per dispositivo. Sta a te decidere se è una cosa buona o cattiva.
Le app impacchettate utilizzando tutti e 3 i metodi possono avere più versioni in esecuzione in parallelo e possono essere facilmente copiate su un' altra macchina. Tuttavia, hanno le loro implementazioni uniche.
Tutte e 3 supportano gli aggiornamenti binari delta ma solo AppImage le app possono aggiornarsi automaticamente come Snap applicazioni richiedono snapd per essere installate e Flatpak applicazioni richiedonoFlatpak da installare.
Sommariamente
AppImages e Snap rimangono sempre compressi ( Flatpak è compresso solo sul lato server) e in genere sono di dimensioni inferiori rispetto a Flatpak app . AppImage è anche indipendente da qualsiasi produttore di distro e mira a unificare gli ecosistemi della piattaforma Linux.
Snap è di proprietà di Canonical e posiziona il suo snap di base sulla distribuzione sottostante, mentre Flatpak è un'iniziativa Red Hat che colloca una distribuzione Yocto sopra la distribuzione sottostante.Inoltre, a differenza di Snap dove gli sviluppatori devono pagare a Canonical, AppImage e Flatpak sono gratuiti.
Dal mio punto di vista, AppImages sono il metodo di pacchettizzazione ideale da utilizzare perché è il più conveniente sia per gli sviluppatori che per gli utenti finali. Tuttavia, è possibile che coesistano soprattutto quando ci sono casi in cui gli sviluppatori preferiranno utilizzare l'uno dell' altro. Dicci cosa ne pensi nella sezione commenti qui sotto.
La mia ricerca per questo articolo è stata fortemente influenzata da progetti simili e dai thread di Reddit qui e qui. Sentiti libero di dare un'occhiata per maggiori informazioni.