Embalagem

Comparação Snap vs Flatpak vs AppImage

Comparação Snap vs Flatpak vs AppImage
Novos formatos de empacotamento como Snap, Flatpak e AppImage estão fornecendo pacotes agnósticos de distribuição que funcionam na maioria das distribuições Linux. Isso resolve os problemas de empacotamento enfrentados por desenvolvedores de aplicativos que desejam distribuir seus aplicativos em várias distribuições Linux. Agora eles podem se concentrar em uma construção que funcione em qualquer lugar, 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 do usuário final. As diferenças na arquitetura de empacotamento e a facilidade de empacotamento 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 são autoexplicativos, outros pontos foram explicados abaixo da tabela de comparação.

Foto Flatpak AppImage
Android Like Permission Controls Toggles (GUI e CLI) sim sim Não
Suporte de sandbox sim sim sim
Sandboxing obrigatório sim sim Não
Suporte de tema nativo Sim (com ressalvas) Sim (com ressalvas) Sim (com ressalvas)
Suporte para bibliotecas agrupadas sim sim sim
Portabilidade de aplicativo Sim (com ressalvas) Sim (com ressalvas) sim
Suporte a executável único totalmente contido (semelhante a .arquivos exe no windows) Não Não sim
App Store Online sim sim sim
Plug-ins para software de desktop App Store sim sim Não
Suporte a aplicativos paralelos com várias versões sim sim sim
Atualizações automáticas sim sim Sim (com ressalvas)
Suporte para Chrome OS (por meio de contêineres Crostini) sim sim sim
Tamanho do aplicativo Varia, mas superior a AppImage Varia, mas superior a AppImage O mais baixo
Número de aplicativos disponíveis na App Store Altíssima O mais baixo Em algum lugar no meio

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 “Ubuntu Software” pré-instalado para gerenciar as permissões de um aplicativo instantâneo.

Para ver as permissões de um aplicativo instantâneo usando a interface de linha de comando, execute o comando abaixo:

$ snap conexões de cromo

Substitua “chromium” pelo nome do seu aplicativo instantâneo.

Para ver uma lista de todos os aplicativos instantâneos instalados, execute o comando abaixo:

$ snap list

Para conceder permissão à câmera para snap cromo, use o comando abaixo:

$ snap connect chromium: camera

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

$ snap desconectar chromium: câmera

Comandos apropriados para gerenciamento de permissão podem ser encontrados na coluna “Plug” (mostrado na imagem acima).

Flatpak também fornece uma interface para conceder e revogar permissões. Você pode usar o aplicativo de software GNOME (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.Platform ”com o nome do seu aplicativo Flatpak.

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

lista de $ flatpak

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

$ sudo flatpak override org.kde.Platform --filesystem = host

AppImage não oferece suporte a controles de permissão granulares a partir de agora, mas os desenvolvedores sugeriram que controles de permissão estilo Android podem ser implementados no futuro.

Sandboxing

Snap, Flatpak e AppImage são compatíveis com ambientes de aplicativos em sandbox prontos para uso. Uma sandbox é um ambiente (ou contêiner / sistema de arquivos / arquivo) que está 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 aceitação dos usuários ou podem ser completamente desativadas pelos usuários finais. Um aplicativo em sandbox é seguro do que qualquer outro aplicativo que tenha acesso total ao sistema host. Todos os aplicativos Android são executados em uma sandbox e esses três formatos de embalagem funcionam em uma ideia semelhante.

Suporte de tema nativo

Todos os três formatos de empacotamento suportam 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 empacotados em seus respectivos formatos. Se você estiver usando pacotes de temas e ícones de terceiros, pode não obter o tema, o cursor e os ícones do aplicativo corretos. A integração melhorou com o tempo, mas eles ficam um pouco aquém em comparação com aplicativos instalados do gerenciador de pacotes oficial de uma distribuição.

Portabilidade de aplicativo

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

Atualizações automáticas

Os aplicativos Snap e Flatpak são instalados a partir de repositórios de aplicativos centralizados e os aplicativos podem ser atualizados automaticamente sem a intervenção do usuário. AppImage carece de um mecanismo robusto de atualização automática. Os usuários devem baixar manualmente o novo binário AppImage e substituir o existente para instalar as atualizações. Os mantenedores do aplicativo 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 de AppImage forneceram uma ferramenta para atualizar binários existentes, fornecendo atualizações delta. No entanto, ainda requer o download da ferramenta de atualização e o uso manual com um binário AppImage existente. Ainda não há mecanismo de atualização viva-voz disponível para AppImage.

Tamanho do aplicativo

AppImage tem pegada de tamanho de aplicativo mais baixa, provavelmente porque exibe binários em formato compactado. Os tamanhos dos aplicativos Snap e Flatpak variam muito de aplicativo para aplicativo e é difícil determinar qual deles oferece um tamanho de instalação menor. Apenas para referência, o Inkscape AppImage tinha cerca de 98 MB, o Snap tinha cerca de 183 MB e o Flatpak tinha cerca de 109 MB.

Conclusão

Os pacotes de aplicativos universais são uma situação em que todos ganham tanto para desenvolvedores quanto para usuários finais. Esses formatos de empacotamento permitem uma entrega muito mais rápida de aplicativos seguros. Eles também abrem portas para desenvolvedores que têm evitado o Linux por causa dos diferentes padrões de empacotamento 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 corrigidos com o tempo. Pacotes universais de distribuição cruzada são o futuro e sua adoção aumentará. Lentamente, mas de forma constante, as distribuições podem mudar para compilações Snap, Flatpak ou AppImage no futuro, exceto para bibliotecas centrais e pacotes essenciais que são necessários para o funcionamento do sistema operacional.

Os 10 melhores jogos para jogar no Ubuntu
A plataforma Windows tem sido uma das plataformas dominantes para jogos devido à grande porcentagem de jogos que estão sendo desenvolvidos hoje para o...
5 melhores jogos de arcade para Linux
Hoje em dia, os computadores são máquinas sérias usadas para jogos. Se você não pode obter a nova pontuação máxima, você saberá o que quero dizer. Nes...
Batalha por Wesnoth 1.13.6 Desenvolvimento lançado
Batalha por Wesnoth 1.13.6 lançado no mês passado, é o sexto lançamento de desenvolvimento no 1.13.série x e oferece uma série de melhorias, principal...