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.