Ubuntu: a Canonical realmente força o usuário a usar Snaps?

Esse artigo não vai abordar a qualidade dos snaps ou se eles fazem ou não sentido. O que está sendo analisado são 3 pontos:

  • A Canonical realmente força os usuários a usar snaps?
  • Até onde a Canonical tá certa e errada nessa história
  • O que eu faria no lugar dela?

Dito isso, vamos ao tópico

A Canonical realmente força os usuários a usar snaps?

De maneira geral, o que acontece é que o Ubuntu vem com snaps por padrão e até aí tudo bem , não dá pra dizer que ela força, um sudo snap remove resolve o problema certo? É… Mais ou menos, vamos por partes, de cara você perde a loja oficial da distro o que é um preço relativamente justo a se pagar, o problema são 2 pacotes Firefox e Chromium, basicamente quando você tenta instalar eles pelo gestor de pacotes do APT ele chama o gestor de pacotes snap e instala por ele, e é aí que está a polêmica JUSTIFICADA, eu faço questão de separar porque tem gente que reclama dos snaps porque a Canonical não libera o código fonte da entidade certificadora dos snaps, isso é extremismo, a comunidade não precisa dela pra nada, dito isso vamos ao próximo tópico

Até onde a Canonical tá certa e errada nessa história

Pra entender essa questão, é necessário antes de tudo entender o que é o APT e o que são pacotes .deb e o snap:

O APT é uma ferramenta vinda do projeto Debian que, ao contrário da crença popular, não é um gestor de .debs, esse é o trabalho do dpkg o APT trata dos repositórios, ele permite baixar pacotes de fontes externas, autogerir as dependências e controlar atualizações do pacote

Um pacote .deb nada mais é que a união de dois arquivos compactados, um arquivo contenndo um descritor (o que tem no pacote, dependências, scripts e etc…) e outro que é o conteúdo do pacote que pode ser literalmente qualquer coisa

Um snap nada mais é que um formato de aplicação, que precisa de um interpretador, ele funciona mais ou menos como a plataforma Java porém pra qualquer linguagem inclusive Java, você tem um arquivo squashfs compactado com recursos pra iniciar uma instância da aplicação e um arquivo descrevendo como iniciar a aplicação, isso é feito através de um interpretador que também permite gerenciar os snaps

Dito isso, fica evidente que trazer um pacote.snap dentro do .deb não é forçar as coisas, o .snap é um formato de aplicação e o .deb pode ser usado pra distribuir qualquer coisa inclusive aplicações e o APT nem entra na equação porque sua função não é dizer o que tem dentro do .deb mas sim buscar ele num repositório, verificar suas dependências buscar as dependências e chamar o gestor de pacotes ele sim vai instalar o pacote

O que acontece na realidade é que a Canonical parou de fornecer o Firefox fora do ecossistema snappy, caso você use a versão do Debian o Ubuntu não vai se opor, mas aí você pode se perguntar: por que então é possível instalar via APT?

Bom, não existe uma explicação oficial mas penso eu que seja para não destruir a compatibilidade com scripts de pós instalação e documentações online

Ok, a Canonical não tá errada em fazer o que fez e ela também não te força a usar snap, porém isso não significa que ela não seja digna de críticas por isso, o Firefox é instalavel via APT, isso significa que temos um registro no sistema, e também é instalada via Snappy através de um script de pós instalação no pacote (não tem alias nenhum aqui) como o snappy tem atualizações automáticas isso pode significar que você pode ter uma discrepância de versões, nada grave mas é chato… Além disso, ao remover com o APT o Firefox não é mais removido porque não existe um gancho de remoção pro snap, outro ponto é que se você precisar fazer por algum motivo um cache offline de atualizações você não vai conseguir com o APT é necessário fazer passos a mais pra isso

O que eu faria no lugar dela?

Pra começar eu não faria tão diferente assim, eu não uso o .snap mas entendo perfeitamente os motivos que levaram a isso, porém eu faria algumas coisas diferentes: impediria o snappy de atualizar automaticamente pacotes instalados via APT, eu também traria o .snap dentro do .deb junto com o certificado de segurança e por fim adicionaria um marcador no sistema para remover o .snap junto caso o pacote .deb seja removido

Bônus

A ideia de misturar formatos veio do Deepin, até as primeiras releases do Deepin 20, ele fazia a mesma coisa com flatpaks

8 curtidas

Como sempre, um usuário cabeça e com postagens que agregam valor :ok_hand:
Aproveitando o ensejo, existe alguma ferramenta como o Flatseal para Snap? Ou ao menos uma forma de manipular permissões via terminal?

2 curtidas

O Snap2 gerencia as permissões por meio de interfaces – a Canonical tem uma boa documentação sobre o assunto.

PS: infelizmente para muitos, gerenciar permissões dos snaps por interface gráfica depende da Snap Store.

1 curtida

Eu acho que a Canonical força sim o uso dos Snaps, mas é o produto dela, a decisão é dela. Vira usuário quem quer.
Se ela está certa ou errada, não sei, mas a princípio as soluções da Canonical tem atraído mais desenvolvedores do que outras soluções similares de terceiros.

Canonical deu um tiro no próprio pé com o snap, e sim, ela força o usuário. GNU/Linux sempre foi e será sinônimo de liberdade para o usuário, seja ele um iniciante ou avançado. Se faço uma instalação do Debian, como exemplo, e não quero uma função ou pacote em meu sistema, simplesmente removo com um “apt purge -y pacote” e nada, além disso. Esse comando não irá matar funcionalidades do meu sistema (desde que não seja um pacote core, claro) e não prejudicará meu uso final, simples e eficaz.

Quando você é desenvolvedor, substituí programas do sistema padrão e até mesmo funcionalidades por um formato de arquivo que APENAS VOCÊ julga melhor, sem nem ao menos questionar os usuários finais - e não da alternativa simples para outro método, isso é forçar. Um clássico exemplo disso é o Chromium, ninguém pediu por ele em snap, ninguém reclamava do apt, mas, colocaram ele em snap mesmo assim.

Até mesmo algo que poderia ser simples, como a remoção do snap, não é. Você precisa desativar os serviços no systemd, remover o snapd, remover o diretório de cache do snapd, remover no diretório /root/, desmontar os “loop devices” e torcer para isso não acabar quebrando seu sistema, além da sua loja.

Em meus anos usando Linux, nunca vi um usuário reclamar que o flatpak (como exemplo) está sendo forçado, ou até mesmo instalando pacotes que antes o gerenciador da distribuição lidava bem. Isso porque ele nunca foi forçado em nenhuma distribuição, simplesmente funciona e está lá para quem quiser usar, o usuário TEM ESCOLHA. Linux Mint removeu completamente o snap do sistema exatamente por isso.

Da pra gerenciar as permissões dos snaps instalados pela própria Ubuntu Software (Snap store).

1 curtida

Olá!

Bastante interessante o artigo.
Estava lendo também o outro tópico com a longa discussão…

Algo importante é ver que SNAP é mais que um sistema de distribuição. Como ja falado, sim é um produto e a Canonical aufere lucro com ele.

Na maioria dos casos penso que há uma grande confusão frente as distros em geral devido a história da liberdade de escolha, as licenças e etc. E, nesse caso, conflitos de interesse ocorrem por parte do usuário por nem sempre “observar” tais aspectos e propósitos dos mantenedores (seja uma empresa, comunidade, um indivíduo, etc.).

A Canonical vive de lucro, o Ubuntu Desktop tem papel auxiliar nisso, mas não é a verdadeira fonte e sim os serviços de suporte. Mas essa versão tem o papel fundamental a qual serve o investimento da Canonical (custo de manter o Ubuntu Desktop “free”) experimentação, pessoas envolvidas e etc que ajudam amadurecer tecnologias que ela precisa.

No aspecto geral, penso que é estranho as frases do tipo “ela não pode fazer isso ou aquilo” dado o contexto do que é o Ubuntu (plataforma e produtos). Isso não quer dizer que não possa ser criticada ao longo do caminho, e caberá a ela decidir até que ponto ela pode manter, remover, alterar ou gerir os recursos do próprio produto. É assim na Apple e é assim na Microsoft, podemos reclamar muito e a gestão baseado em regras de negócio, na estratégia corporativa e requisitos de acionistas… diversas coisas podem até serem atendidas, outras não. E por fim cabe a nós decidirmos até que ponto é vantagem continuar consumindo aquele produto. Do mesmo modo é com o Ubuntu, porém felizmente ainda nem pagamos para usar a torto e direito.

Agora, se SNAP, tornar prejuízo financeiro bem provável que vai cortar, assim como ja foram tomado medidas de conter custos e eliminar projetos que não vingaram e que de fato ajudaram muito a Canonical ter novo fôlego contábil.

Particularmente, utilizo snap, me serve muito bem em diversas situações pois tenho mais proximidade ao meio corporativo. E conheço diversas pessoas que gostam bastante pela praticidade no lado server (muuuita soluções apliance facinho facinho com 1 linha de comando), em iot tem várias vantagens também.

Evidente que utilizo também flatpaks e appimages. No dia a dia preciso de flexibilidade, curto bastante a solução flatpak, flathub e etc e até tenho mais apps nesse formato instalados atualmente, mas ja tive meu dia de trabalho salvo com appimages também. Sigo sempre comparando e testando qual me atende melhor e pronto.

Vi comentário sobre o Deepin. A distro vai lançar um novo padrão de distribuição principal de apps… mais lenha na fogueira? rs

3 curtidas