Estado dos snaps em 2023

Sei que é um tópico delicado, mas qual o estado dos snaps depois desse tempo todo esse de amadurecimento? Por estado me refiro:

  • Consumo de memória
  • Consumo de processador
  • Espaço em disco
  • Tempo de instalação e atualização

Sempre tive pé atrás com esse tipo de empacotamento, não por birra com a Canonical em trazer como uma solução de código fechado, mas sim por péssimas experiências no passado no que tange a performance e de ter sido um earlier adopter da snap store no Ubuntu 20.04.

Opa, acho que o maior problema da questão é que “depende”.

Assim como tem softwares feitos em formatos “tradicionais”, digamos, como .deb e .rpm que são lentos, usam muita RAM, ou qualquer coisas dessas, existem snaps que são assim, não por serem snaps, mas por serem simplesmente assim.

Então tudo que vou dizer aqui é generalizando, blz?

Memória:

Um software em Snap não tende a usar mais RAM do que a sua contraparte em qualquer outro formato, o que muda é que para ter suporte a snaps, você precisa de um daemon “extra”, o snapd.

Não estou com nenhum snap aberto nesse momento, e o snapd consome apenas 18MB de RAM.

Processador

Mesmo caso da memória. Uso de CPU por ele fica 0.00% no monitor do sistema. Certamente usa algo, mas é bem pouca coisa. Observando que é um Ryzen 7, em CPUs mais fracas, o % pode ser diferente.

Espaço em Disco

Outra coisa que depende o programa. Naturalmente se usa mais espaço em alguns casos, por conta de todas as dependências estarem no pacote. Esse provavelmente é o único contra dessa abordagem. Mas Docker mesmo já provou que é melhor gastar espaço em disco em prol de compatibilidade.

Eu escrevi esse artigo em 2020, talvez seja o caso de revisitar:

Uma coisa que percebi é que o Firefox em Snap e .deb tem o mesmo tamanho instalados, porém, o pacote .deb é mais compacto para baixar. No fim, os dois tem o mesmo tamanho em disco, mas os novos downloads de versões novas do mesmo software, podem ser maiores em Snap, com o contraponto de que não é gasto tempo descompactando arquivo e jogando em pastas via DPKG, mas se gasta tempo montando uma nova imagem. É um grande jogo de perde e ganha que não sei se tem um vitorioso claro.

No caso do Firefox, e isso pode ocorrer com outros softwares, o Firefox Snap é feito diretamente pela Mozilla, o .deb, é criado pelas distros baseando-se no software da Mozilla.

Tempo de update

Mais uma coisa bem relativa a cada software, alguns dos softwares em Snap são as versões originais mantidas pelos devs, como o caso do Authy da Twilio, a versão em Flatpak é um reempacotamento feito pela comunidade, e o seu update vai depender do quão atencioso esse dev for a isso, o mesmo vale para o Spotify.

Mas existem casos contrários, o OBS Studio por exemplo tem sua distribuição direta feita pelo OBS mesmo em flatpak, enquanto a versão SNAP é obra da Canonical e da comunidade, então depende muito do programa. Não é uma questão de formato, esse tipo de coisa já ocorria e ainda ocorre com formatos tradicionais de pacotes.

Quando ao tempo de download, são maiores quantidades de dados, teoricamente demora mais, dependendo da internet. Os updates dos snaps são automáticos por padrão, e agora me ocorreu que eu nunca precisei atualizar manualmente ou senti que eles estavam atualizando por questão de velocidade ou algo assim no sistema.

A velocidade de instalação, depende do pacote mais uma vez, e depende de outros fatores, velocidade da internet, do servidor, do tamanho do Snap, tec.

Para finalizar, um comentário meu mais recente sobre o assunto:

Sinceramente, eu acho os Snaps uma boa alternativa, em geral é uma solução bem mais robusta e cheia de recursos do que o .deb, porém, somente o Ubuntu e suas flavours oficiais realmente estão adotando ele.

Eles não são de código fechado, o GIMP em Snap é tão aberto quanto o GIMP em .deb, a parte do servidor, que distribui os updates e os pacotes é que tem código fechado, o cliente é aberto.

Eu consigo compreender perfeitamente quem não se sente confortável com isso, mas francamente, em sentido prático, se a pessoa já confia na Canonical para usar o sistema (e acho pouco provável que as pessoas verifiquem o código de tudo antes de baixar pacotes ou atualizações), confiar no trabalho da Canonical com a Snap Store é só mais uma coisa.

O próprio Launchpad, que abriga os PPAs, era fechado no começo, e depois se tornou aberto. A Canonical parece já ter experiência com isso e saber quando vale a pena fazer certas coisas. Podemos discordar, claro, mas ainda estamos usando tudo o que eles fazem de graça.

Seria melhor se fosse de código aberto? Provavelmente, sim; mais pelo status do que pela utilidade, mas não é o fim do mundo não ser. A maior parte das pessoas usa Windows no desktop e Android no smartphone, além de rodar programas proprietários aqui e ali de toda forma, e isso parece que nunca foi um problema, não é com isso que a maioria se importa, o que não faz o assunto ser menos importante para quem sim, se importa.

Abraços!

7 curtidas

deixei o preconceito de lado. instalei o onlyoffice em flatpak e snap e ambos abrem e funfam de boa. o único problema é que n consegui imprimir via rede no snap. mas n sei s foi alguma configuração minha. farei novos testes amanhã.

Uma das coisas que pode gerar estranheza, já que pacotes .deb não tem restrições (e isso é um problema atualmente), é que snaps e flatpaks tem sistemas de permissões. O seu onlyoffice pode simplesmente não ter permissão para acessar as impressoras.

tô usando o flatseal, ferramenta mágica para gerenciar permissões no linux. decididamente, agora misturo muitas coisas: deb. flatpak e snap, além do docker q vc ensinou. uso este para rodar o rstudio e aprender linguagem R.

a única coisa chata que observo é que deb, flat e snap n compartilham a localização dos arquivos de configuração. por exemplo: o firefox deb guarda tudo em $HOME/.firefox, o cache em $HOME/.cache; o flat, em $HOME/.var/app; snap em $HOME/snap.

aí vem a dor de cabeça. quando usava só deb, bastava fazer becape de $HOME/.firefox que vinham todos os atalhos e extensões para qualquer distro a qualquer tempo. agora tenho de fazer becape de locais diferentes e exportar os favoritos.

firefox flat e snap não importam favoritos diretamente do firefox/chrome/chromium deb. não os encontra. e acho que importa em json, não html.

mas, fora isso, não há diferença nenhuma. espero que um dia haja integração, para não ter de alterar manualmente cada app empacotado diferente.

Não sei se foi porque li rápido e não vi, mas têm dois tópicos que acho que você poderia ter abordado:

  • Tempo de inicialização do programa: vejo o pessoal reclamar muito que os navegadores demoram muito para inicializar se comparado com as contrapartes nativas. Tem uma piada que a versão snap da calculadora leva 20 segundos para iniciar, o que é inaceitável em um computador moderno.

  • Integração com o sistema: um exemplo que o colega já citou foi o do ONLYOFFICE que não encontra as impressoras. Esse tipo de problema ainda é comum com outros programas? Um exemplo que tenho não é com snap, mas com a versão flatpak, mas consigo imaginar isso acontecendo com a versão snap também: Na versão flatpak do Visual Studio Code, o terminal dele não acessa o terminal do sistema operacional em si, mas um próprio, o que traz o problema de que não consigo acessar certos softwares pelo terminal interno do Visual Studio Code, como o Node.js.

Eu mesmo formatei meu computador agora (do Windows 10 para MX Linux) e só não instalei o Kubuntu justamente por causa dos snaps. O Google Chrome – que também é snap – leva um tempão para instalar.

1 curtida

Isso também pode variar com o programa. Dependendo de como a imagem do snap foi compactada pelo desenvolvedor.

Então até mesmo fazer uma “média” não adianta tanto, se exatamente o programa que importar para o usuário tiver um comportamento diferente. Para fins de curiosidade, a gente pode tentar fazer uma análise, acho que daria um conteúdo legal, obrigado pela sugestão. :slight_smile:

Quando a isso, suspeito que seja simplesmente um problema relacionado a permissões.

Não tenho certeza quanto ao Snap, mas em Flatpak parece ser isso. Por padrão o ONLYOFFICE não tem acesso a impressoras, como você pode ver na imagem acima. Bastaria ativar essa opção no Flatseal.

Provavelmente seria interessante se os apps conseguissem pedir por permissão, como ocorre no Android, mas deve ser esse o problema.

Abraços!

1 curtida