Pop! e os Flatpaks - O formato padrão já foi escolhido

Recentemente, as Distribuições Linux vem cada vez mais apoiando a ideia de se possuir um formato padrão de pacotes, uma vez que isso facilita a vida dos usuários assim como a dos desenvolvedores. No RoadMap (mapa de metas) do Pop!_OS, está listado uma grande novidade que provavelmente chegará com a versão 20.04 ou posterior: a inclusão e integração de Flatpaks.

Suporte para Flatpak

Com o ecossistema Open Source dependendo/confiando cada vez mais no Flatpak como modelo de distribuição de aplicativos para Desktops Linux, é importante trazer esse suporte ao Pop! _OS imediatamente. Isto implica:

  • Ter o Flatpak instalado por padrão, com o repositório do Flathub;
  • Adicionar suporte a repositório Flatpak no Repoman, nossa ferramenta de gerenciamento de repositórios apt;
  • Garantir que o Pop! _OS Repo seja listado como prioridade no Repoman;
  • Atualizar o Pop! _Shop para trazer o suporte nativo a Flatpaks;
  • Corrigir a exibição das fontes de aplicativos para que o repositório do Pop! tenha maior prioridade.

Como os desenvolvedores do Pop! disseram no texto, o Flatpak se tornou o modelo mais querido por parte dos desenvolvedores das Distros Linux e quiça por seus usuários, sendo adotado abertamente por várias Distribuições, como o Fedora, Mint, Elementary, OpenSUSE e Zorin. Já sua contraparte, os Snaps, vem conquistando com razão os servidores, porém fora o Ubuntu, Snaps vem recebendo apoio quase nulo em Desktops, com exceção do Manjaro, que por seguir uma filosofia atrelada ao conceito de pacotes universais, acabou adotando os Snaps assim como Flatpaks e AppImages.

Levando em consideração que nem mesmo as Distros que são baseadas no Ubuntu pretendem usar Snaps, acho que podemos dizer qual foi o formato escolhido pelo ecossistema Linux para Desktops, certo? Contudo, eu me perguntei a razão disso e aposto que vocês também devem possuir essa dúvida, logo eu acredito que uma explicação seja importante para que possamos entender que a aversão a Snaps dos desenvolvedores não é birra como alguns podem imaginar.

Pacotes Snaps foram criados pela Canonical, empresa responsável pelo Ubuntu, e essa tecnologia é fortemente codificada para que seja usada apenas a Snap Store e o server-side(lado do servidor) é código fechado (proprietário). É possível que outra central de Snaps seja utilizada? Sim, mas para que isso seja possível, os desenvolvedores precisariam criar tudo do zero, uma vez que ninguém sabe como funciona o server-side da Snapcraft da Canonical.

Já a tecnologia Flatpak é completamente de código aberto, descentralizada e foi criada para solucionar um problema existente nos Desktops, enquanto os Snaps foram criados para servidores e apenas depois foram “adotados” para Desktops. “Qual é a diferença na prática?”, vocês me perguntam. Quando você instala um pacote Snap, você está instalando cada pedaço para que o programa desejado seja rodado e isso inclui absolutamente todas as bibliotecas utilizadas em um ambiente bem isolado, um sonho para qualquer mantenedor de servidor e eu digo isso por ser um, porém tal tecnologia no cenário de Desktops acaba se tornando ineficiente e descartável até, pois ela se propõe a fazer algo que vai além do que é realmente necessário para Desktops. Utilizar Snaps em Desktops é como se você estivesse dando um remédio de elefante para um gato, enquanto a tecnologia Flatpak utiliza a dosagem certa, apenas com o que é realmente necessária para a execução do programa, uma vez que o isolamento e a criação de um ambiente exclusivo para o programa não é uma necessidade assim como é no caso dos Snaps.

Por fim, quero deixar claro que esse não é o fim dos Snaps assim como alguns podem erroneamente dizer, os Snaps são o futuro digo eu, mas eles são o futuro dos servidores e não dos Desktops, pois acredito eu que o reino dos Desktops está caminhando para ser dos Flatpaks. A verdade é que Flatpaks e Snaps são monstros diferentes e sinceramente, eu não gosto de compará-los, pois eles nem mesmo competem pelo mesmo posto, e, ao meu ver, essa ideia de disputa surgiu com o erro da Canonical em tentar trazer Snaps para Desktops e não me entendam mal, esse erro não foi de todo mal, porque Snaps ajudaram a fomentar a ideia de se possuir um pacote universal, então vamos aproveitar esse tempo de mudança, porque eu sinto que nós estamos evoluindo mais rápido do que imaginávamos.

8 Curtidas

o POP! é realmente um player importante apostando no FlatPak, entretanto, levando em conta que a Canonical é a patrocinadora do Snap e que, em numeros brutos de desktop (levando em conta o mercado corporativo) o Ubuntu tem uma fatia muito grande do mercado, eu não arriscaria afirmar neste momento que essa briga já está definida.

1 Curtida

Fico feliz com isso, pacotes snaps são ridiculamente grandes. Uma atualização de 1GB no Manjaro com o sistema de pacotes tradicional iria fácil para 3GB se todos os aplicativos forem baseados em snaps.

Uma vez fiz uma pesquisa para comparar os tamanhos e peguei o VLC como amostra, vejam só o que descobri.

snap = 204 MB :fearful:
flatpak = 78 MB :roll_eyes:
appimage = 53 MB :slightly_smiling_face:
Instalador Windows = 40MB

O que é que tem no Windows para que seus instaladores sejam pequenos, e ao mesmo tempo tão universais?



Eu não sabia disso, isso é muito grave, ainda que seja possível escrever uma alternativa open-source.

1 Curtida

Não estava tão atento, além de consumir recursos só por ter um snap instalado ele consegue desperdiçar mais espaço que o flatpak… Não entendo por que ainda discutem isso…

O Flatpak tem instalações com tamanhos monstruosos para programas simples, ainda não entendo isso… isso é um problema grave pros dois padrões…

1 Curtida

Sobre os tamanhos, acho que isso não mudara de forma alguma. Até porque, nunca vi a galera que desenvolve esses formatos se preocupar com isso. Hoje, com hd’s maiores e internet cada vez mais rápida, duvido que eles vão se voltar para essa questão. Também não gosto desses tamanhos, ao meu ver, excessivamente desnecessários, mas quem optar por esses formatos vai ser obrigado a aprender a conviver com isso.

Ainda não testei nenhum a fundo. Mas estou querendo fazer uma instalação em um pc que está sobrando aqui para testar e ver como será. A pequena experiência que tive até agora com o Snap não foi das mais animadoras.

Sinto informar mas isso é mito, menos de 11% dos aplicativos disponíveis no Flathub está lá porque os desenvolvedores optaram pelo formato, a quase 90% dos programas disponíveis está disponível por causa dos mantenedores da Flathub, ou seja, eles [os mantenedores da Flathub] empacotam os softwares e não os desenvolvedores, alias, fora do universo GNOME/Elementary OS a adoção por parte dos devs é muito baixa, dentre os devs que adotaram os formatos universais, o AppImage é praticamente unanimidade, isso pode ser verificado nos repositórios fontes de ambas as Hubs

Na verdade, nesse ponto desde que o desenvolvedor opte por usar “connects” os snaps e Flatpaks se anulam nesse ponto, ambos tem praticamente a mesma lógica

Na verdade, é o flatpak, só não traz o kernel e seus módulos, mas todas as dependências são baixadas no sistema do usuário, criando um overhead grotesco de uso de espaço igual ao snaps

Não é tão complicado quanto parece, na verdade é bem simples, você precisa hospedar dois arquivos, sendo um o .snap e outro a assinatura do snap .assert, o gerenciamento é muito mais simples que um repositório flatpak

Compressão, AppImages, salvo algumas exceções tem o mesmo tamanho ou até menos que o equivalente no Windows, a diferença é que o AppImage seria equivalente ao tamanho descomprimido (que não vai aumentar) e o Windows antes de descomprimir (o que aumenta o tamanho). Além disso não regra, o GIMP AppImage por exemplo é menor que o Windows antes de instalar

1 Curtida

Pô, também não exagera né cara, já teve post aqui mesmo no fórum comparando tamanhos de programas instalados em flatpak vs padrão, e a diferença de um para outro não é lá grande coisa.

Só dá uma olhada nisso…
Software: Cliente de email do Tutanota

https://mail.tutanota.com/desktop/tutanota-desktop-linux.AppImage > 72,9 MB
Na Loja do Mint, flatpak:
736,9 MB to download, 2,5 GB of disk space required

Vendo assim, até appimage deveria entrar na discussão deles.

1 Curtida

Eu utilizei o ‘mintinstall’ pra ver meu resultado, por que essa discrepância no seu resultado? Será a origem do pacote? E outra, tem que ver o espaço requerido…

Simples, na primeira vez que você for baixar um aplicativo, junto com ele será baixado as runtimes necessárias para ele funcionar e essas runtimes também vão servir para outros aplicativos que você for instalar.

1 Curtida

Na verdade você não entendeu a quais desenvolvedores eu estava me referindo. Eu estava me referindo aos desenvolvedores das Distribuições Linux, porque estes sim possuem um verdadeiro apreço pelos Flatpaks.

Exatamente, você acertou em cheio. O desenvolvedor pode optar.

Isso não é verdade. Um Flatpak normalmente é composto apenas pelo aplicativo, pelo runtime do aplicativo, pelos pacotes de tradução, informação de debug para binários, o sdk e “extensões” responsáveis por adaptar o aplicativo a certas condições especificas caso seja necessário e caso seja especificado pelo desenvolvedor. É uma instalação enxuta caso seja feita da forma correta. Você pode encontrar todas as informações na documentação do mesmo.

Como alguém que trabalha na área de T.I, eu tenho que dizer que saber que é necessário o .snap e a assinatura é a mesma coisa que saber nada, principalmente por esse ser um modelo básico de vinculação. Portanto, não, não é fácil, porque ninguém além da Canonical sabe o caminho certo a ser tomado, como aplicar, como gerenciar isso tudo em massa etc. Não é simples como você pensa que é, existem muitas coisas envolvidas e quando eu digo muitas eu me refiro a várias linhas de código e a muito tempo investido em tentativa e erro, dentre outras etapas de desenvolvimento. É mais simples do que Flatpak? No site do Flatpak tem tudo documentado de como você pode fazer tudo, o passo a passo, diferentemente dos Snaps, então como criar uma central de Snaps que ninguém conhece qual é o processo pode ser mais fácil do que criar uma central de Flatpaks?

Isso acontece apenas nas primeiras vezes que você vai instalar Flatpaks, porque nessas instalações é instalado as dependências necessárias para o funcionamento da tecnologia Flatpak junto com o programa desejado.

Já instalei alguns flatpaks aqui certa vez, os programas baixam as runtimes, realmente, mas tive impressão que elas são baixadas com pouco critério. Quando você vê tem um amontoado delas e não tem noção como elas se relacionam. Parece até que tá vindo um OS junto…

É normal a confusão, é um formato diferente. Você pode entender o funcionamento lendo a documentação ou pode usar e relaxar, porque está longe, muito longe de um OS estar sendo instalado junto KKKKKKKKKKKKKKKKKK

1 Curtida

Bom, eu não costumo instalar muitos aplicativos, só instalo o necessário, mas lembro que tinha alguns flatpaks que usavam runtimes de versões diferentes do Gnome e eu simplesmente achava isso uma verdadeira M***a, que bom que já mudaram isso.

Edit: Pesquisando vi que ainda existem aplicativos que usam runtimes em versões antigas. Ex: PCSX2

1 Curtida

Primeira instalação:

Segunda instalação:

É, fui pela facilidade da GUI e não reparei na linha de comando… :sweat_smile:
Mas ainda sim as dependências são extravagantes e parecem muito indefinidas. Os softwares baixam versões alternadas e parecem ter poucos runtimes em comum, as referencias dos desenvolvedores raramente são comuns, então sempre está a se puxar algo a mais.

Já que você entende, deixe-me fazer-lhe outra pergunta. Por que Flatpaks são maiores que Appimages? Posso dizer que Appimages dependem mais de “runtimes” se compararmos aos Flatpaks?



O problema é quando todos os aplicativos estão em um desses formatos universais. Creio que mesmo para o padrão do Brasil, isso não seria o fim do mundo, mas fica chato baixar programas tão grandes assim.

Acho um absurdo um programa como VLC pesar mais que 200MB.

2 Curtidas