Explicamos o que é Flatpak, Snap eAppImage estão no artigo Como eles empilham? publicado há mais de 2 anos e, embora as tecnologias tenham melhorado muito desde então, estou avaliando-as da perspectiva de um desenvolvedor de software.
Sandboxing / Confinamento
Você pode executar AppImage sem sandbox, bem como usá-lo com diferentes sandboxes, por exemplo. AppArmor e Firejail.
Snap pode ser executado sem sandboxing, mas você não pode usá-lo com sandboxes diferentes, pois está fortemente acoplado a AppArmor.
Flatpak não pode ser executado sem sandboxing nem pode ser usado com sandboxes diferentes de Bubblewrap .
Instalação / Execução
Pode-se executar um AppImage depois de definir o executável sem acesso root, sem descompactá-lo e em um sistema off-line.
Snap precisa ser instalado por snapd, não pode ser executado sem acesso root até que seja instalado nem seu arquivo para download pode ser colocado ao lado de exe
e dmgque os usuários podem instalar em sistemas off-line, mas pode ser executado a partir de uma fonte não compactada.
Flatpak precisa ser instalado por um Flatpak ferramenta do lado do cliente, não pode ser executado sem acesso root até após a instalação, não pode ser executado a partir de um fonte descompactada. Além disso, flatpakref
arquivos requerem Internet e flatpak pacotes requerem um tempo de execução para serem instalados.
AppImage pode armazenar e executar aplicativos de locais não padrão, como CD-ROM e compartilhamentos de rede. Flatpak pode fazer o mesmo após alguma configuração, enquanto Snap atualmente não pode.
Nesta seção, AppImage leva o bolo porque seus aplicativos são mais flexíveis.
Distribuição e atualizações de aplicativos
O repositório central para Flatpak e Snap é FlatHub, e Snap Store, respectivamente. Os usuários podem baixar AppImages do AppImageHub, que é uma plataforma de catalogação para software disponível como pacotes AppImage.
Ao contrário de AppImage e FlatPak, porém, oSnap Store é a única loja de aplicativos dominante com um repositório por dispositivo. Se isso é bom ou ruim, cabe a você decidir.
Aplicativos empacotados usando todos os 3 métodos podem ter várias versões rodando em paralelo e podem ser facilmente copiados para outra máquina. No entanto, eles têm suas implementações exclusivas.
Todos os 3 suportam atualizações de delta binário, mas apenas AppImage aplicativos podem ser atualizados automaticamente como Snap aplicativos precisam snapd para serem instalados e Flatpak aplicativos precisamFlatpak a ser instalado.
Sumariamente
AppImages e Snap permanecem compactados o tempo todo ( Flatpak é compactado apenas no lado do servidor) e normalmente é menor em tamanho do que Flatpak aplicativos . AppImage também é independente de qualquer fabricante de distribuição e visa unificar os ecossistemas da plataforma Linux.
Snap pertence a Canonical e coloca seu snap base sobre a distro subjacente, enquanto Flatpak é uma iniciativa Red Hat que coloca uma distro Yocto sobre a distro subjacente.Além disso, ao contrário de Snap onde os desenvolvedores precisam pagar para Canonical, AppImage e Flatpak são de uso gratuito.
De onde estou, AppImages são o método de empacotamento ideal para usar porque é o mais conveniente para desenvolvedores e usuários finais. No entanto, é possível que eles coexistam, especialmente quando há casos em que os desenvolvedores preferem usar um dos outros. Diga-nos o que você pensa na seção de comentários abaixo.
Minha pesquisa para este artigo foi muito influenciada por Projetos semelhantes e os tópicos do Reddit aqui e aqui. Sinta-se à vontade para consultá-los para obter mais informações.