Comparação Snap vs Flatpak vs Appimage

Comparação Snap vs Flatpak vs Appimage
Novos formatos de embalagem como Snap, Flatpak e Appimage estão fornecendo pacotes agnósticos de distribuição que funcionam na maioria das distribuições Linux. Isso resolve problemas de embalagem enfrentados pelos desenvolvedores de aplicativos que desejam distribuir seus aplicativos em várias distribuições Linux. Agora eles podem se concentrar em uma construção que funciona em todos os lugares, em vez de passar por diferentes padrões de embalagem.

Este artigo listará as principais diferenças entre esses três formatos de embalagem da perspectiva dos usuários finais. Diferenças na arquitetura de embalagens e facilidade de embalagem do ponto de vista dos desenvolvedores não serão abordadas aqui.

A tabela abaixo resume as principais diferenças entre os formatos de arquivo Snap, Flatpak e Appimage. A maioria deles é auto-explicativa, outros pontos foram explicados abaixo da tabela de comparação.

Foto Flatpak Appimage
Controles de permissão Android como alternantes (GUI e CLI) Sim Sim Não
Suporte de sandboxing Sim Sim Sim
Sandboxing obrigatório Sim Sim Não
Suporte ao tema nativo Sim (com advertências) Sim (com advertências) Sim (com advertências)
Suporte para bibliotecas agrupadas Sim Sim Sim
Portabilidade de aplicativos Sim (com advertências) Sim (com advertências) Sim
Suporte executável único totalmente contido (semelhante a .arquivos exe no Windows) Não Não Sim
App Store online Sim Sim Sim
Plugins para software de loja de aplicativos para desktop Sim Sim Não
Suporte de aplicativos paralelos de várias versões Sim Sim Sim
Atualizações automáticas Sim Sim Sim (com advertências)
Suporte ao OS Chrome (através de contêineres de Crostini) Sim Sim Sim
Tamanho do aplicativo Varia, mas mais alto que o Apimage Varia, mas mais alto que o Apimage Mais baixo
Número de aplicativos disponíveis na App Store Altíssima Mais baixo Em algum lugar intermediário

Controles de permissão para usuários

O Snap fornece interfaces gráficas e de linha de comando para permissões controladas pelo usuário. Você pode usar o aplicativo pré -instalado "Ubuntu Software" para gerenciar permissões de um aplicativo Snap.

Para ver as permissões de um aplicativo SNAP usando a interface da linha de comando, execute o comando abaixo:

$ Snap Connections Chromium

Substitua "Chromium" pelo nome do seu aplicativo Snap.

Para ver uma lista de todos os aplicativos SNAP instalados, execute o comando abaixo:

$ snap list

Para conceder permissão da câmera ao Chromium Snap, use o comando abaixo:

$ Snap Connect Chromium: Câmera

Para revogar a permissão da câmera, execute o comando abaixo:

$ snap desconectar cromo: câmera

Os comandos apropriados para gerenciamento de permissão podem ser encontrados na coluna "plug" (mostrado na captura de tela acima).

Flatpak também fornece uma interface para conceder e revogando permissões. Você pode usar o aplicativo Gnome Software (requer Gnome 3.32.x) Para gerenciar permissões usando um método gráfico. Para ver as permissões de um aplicativo Flatpak, execute o comando abaixo:

$ FLATPAK INFO-SHOW-PERMISSIONS ORG.KDE.Plataforma

Substitua “org.KDE.Plataforma ”com o nome do seu aplicativo Flatpak.

Para visualizar uma lista de todos os aplicativos FLATPAK instalados em seu sistema, execute o comando abaixo:

$ FLATPAK LIST

Para alterar as permissões de um aplicativo Flatpak, você deve alterar os valores das variáveis ​​mostradas na captura de tela acima. Por exemplo, o comando abaixo disponibilizará todo o sistema de arquivos para um aplicativo Flappak:

$ sudo flatpak substituir org.KDE.Plataforma --filesystem = host

O Appimage não suporta controles de permissão granular a partir de agora, mas os desenvolvedores sugeriram que os controles de permissão do estilo Android podem ser implementados no futuro.

Sandboxing

Snap, Flatpak e Appimage suportam ambientes de aplicativos de sandbox para fora da caixa. Uma caixa de areia é um ambiente (ou contêiner / sistema de arquivos / arquivo) que é completamente isolado e distante do sistema host. Qualquer interação com o sistema host é feita usando API limitada e controles de permissão. Algumas dessas permissões exigem explicitamente a opção pelos usuários ou podem ser completamente desativados pelos usuários finais. Um aplicativo de sandbox é seguro do que qualquer outro aplicativo que tenha acesso total ao sistema host. Todos os aplicativos Android são executados em uma caixa de areia e esses três formatos de embalagem funcionam em uma ideia semelhante.

Suporte ao tema nativo

Todos os três formatos de embalagem suportam a aparência nativa para aplicativos GTK e QT, embora com algumas limitações. Por exemplo, Snap e Flatpak exigem que os temas do sistema sejam embalados em seus respectivos formatos. Se você estiver usando temas de terceiros e pacotes de ícones, pode não obter o tema correto, o cursor e os ícones do aplicativo. A integração melhorou horas extras, mas eles ficam aquém em comparação com os aplicativos instalados no gerente oficial de pacotes de uma distribuição.

Portabilidade de aplicativos

Um aplicativo Appimage é um único arquivo executável (semelhante ao Windows ' .arquivos exe). Você pode compartilhá -lo facilmente entre os sistemas ou o upload para a nuvem. Os aplicativos Snap e Flatpak podem ser portáteis, incluindo o próprio aplicativo, bem como os repositórios infantis dos quais o aplicativo depende. No entanto, o processo não é tão fácil quanto o Apimage e requer o uso de vários comandos para alcançar os mesmos resultados.

Atualizações automáticas

Os aplicativos Snap e Flatpak são instalados a partir de repositórios de aplicativos centralizados e aplicativos podem ser atualizados automaticamente sem intervenção do usuário. Appimage não possui um mecanismo de atualização automática robusta. Os usuários precisam baixar manualmente o novo Appimage Binary e substituir um existente para instalar atualizações. Os mantenedores de aplicativos do Appimage às vezes incluem seu próprio mecanismo de atualização que verifica periodicamente a disponibilidade de atualizações em seus servidores ou requer intervenção do usuário. Recentemente, os desenvolvedores da Appimage forneceram uma ferramenta para atualizar os binários existentes, fornecendo atualizações da Delta. No entanto, ainda requer baixar a ferramenta de atualização e usá -la manualmente com um binário de Appimage existente. Ainda não há mecanismo de atualização sem-livre disponível para o Appimage.

Tamanho do aplicativo

Appimage tem menor pegada de tamanho de aplicativo, provavelmente porque serve binários em formato comprimido. Os tamanhos de aplicativos Snap e Flatpak variam muito de aplicativo para aplicativo e é difícil determinar o que fornece menor tamanho de instalação. Apenas para referência, o Inkscape Appimage no momento em que escreve este artigo era de cerca de 98 MB, o SNAP era de cerca de 183 MB e Flatpak era de cerca de 109 MB.

Conclusão

Os pacotes de aplicativos universais são uma situação em que todos ganham para desenvolvedores e usuários finais. Esses formatos de embalagem permitem uma entrega muito mais rápida de aplicativos seguros. Eles também abrem portas para desenvolvedores que se esquivam do Linux por causa dos diferentes padrões de embalagem usados ​​em diferentes distribuições. Existem alguns problemas que precisam ser resolvidos nesses três formatos de embalagem. No entanto, todos eles estão em desenvolvimento ativo e esses problemas serão fixados horas extras. Pacotes universais de distribuição cruzada são o futuro e sua adoção aumentará. Lenta mas constantemente, as distribuições podem se mover para as compilações Snap, Flatpak ou Appimage no futuro, exceto para bibliotecas principais e pacotes essenciais necessários para que o sistema operacional funcione.