O Ubuntu 20.04, conhecido como Focal Fossa, tem sido alvo de muitos elogios. No entanto, a decisão de adotar o formato snap para a instalação de aplicativos através da Central de Software gerou discussões. Vamos analisar o que essa mudança significa para você.
O que são pacotes Snap no Linux?
O termo “Snap” refere-se tanto ao comando `snap` quanto ao próprio arquivo de instalação. Um snap empacota um aplicativo junto com todas as suas dependências em um único arquivo comprimido. Essas dependências podem incluir bibliotecas, servidores web, bancos de dados e quaisquer outros recursos necessários para o funcionamento do aplicativo.
A vantagem dos snaps reside na simplificação do processo de instalação, eliminando o problema conhecido como “inferno de dependências”. Esse problema ocorre quando um novo aplicativo não consegue ser executado devido à ausência de algum recurso necessário, à versão incorreta desse recurso ou quando a instalação de um novo aplicativo substitui arquivos utilizados por outros, impedindo seu funcionamento.
A instalação de um snap não envolve a simples extração dos arquivos. Em vez disso, durante a execução, o arquivo snap é montado como um dispositivo de loop de bloco. Isso permite acessar o sistema de arquivos SquashFS interno.
O aplicativo é executado em um ambiente isolado, protegido, garantindo que seus arquivos não interfiram nos arquivos do sistema. É possível até mesmo instalar múltiplas versões do mesmo aplicativo sem que haja conflitos entre elas.
A desvantagem é que os arquivos de instalação de snaps são maiores do que os arquivos tradicionais do gerenciador de pacotes Debian (DEB), ocupando mais espaço em disco. Cada aplicativo que necessita de um recurso específico instala sua própria cópia desse recurso, o que não é a forma mais eficiente de utilizar o espaço em disco. Embora os discos rígidos estejam cada vez maiores e mais acessíveis, alguns usuários ainda resistem a essa abordagem. Além disso, a inicialização de aplicativos via snap tende a ser mais lenta.
Snaps também foram criticados por não seguirem o tema do ambiente de trabalho e por suas atualizações automáticas. Outro ponto de desconfiança é que os snaps nem sempre são criados pelos autores originais dos softwares, o que levanta questões sobre a sua “oficialidade”.
Com o Focal Fossa, a Canonical substituiu o aplicativo Ubuntu Software por uma versão que prioriza a instalação de snaps. Vamos entender as implicações disso.
A Central de Software do Ubuntu
Podemos utilizar o comando `df` para listar os sistemas de arquivos SquashFS montados no seu computador. A opção `-t` restringe a saída aos tipos de sistemas de arquivos que nos interessam:
df -t squashfs
Em seguida, usamos o comando `snap list` para visualizar os snaps instalados:
snap list
Na saída, observamos snaps relacionados ao ambiente de trabalho GNOME, funcionalidades principais do snap, temas GTK e armazenamento de snaps, incluindo o próprio aplicativo de loja snap.
O ponto crucial é que, ao executar o comando `snap-store` em um terminal, o aplicativo que é aberto é a Central de Software do Ubuntu. Geralmente, iniciamos a Central de Software clicando em seu ícone, mas ao executá-la via linha de comando, fica evidente que, internamente, ela agora é o aplicativo de loja snap:
snap-store
A interface da Central de Software parece familiar, permitindo a busca e instalação de softwares como antes. Ao pesquisar e instalar um aplicativo, como o “sqlitebrowser”, a tela exibe detalhes e uma captura de tela. Ao clicar em “Instalar”, o software é instalado.
Apesar das mudanças “por baixo do capô”, a experiência do usuário permanece semelhante. Ao rolar a página para baixo, informações específicas do snap são exibidas:
A seção “Detalhes” mostra informações como:
- Canal: A origem da instalação.
- Versão: A versão do software.
- Licença: O tipo de licença.
- Desenvolvedor: Quem criou o snap ou escreveu o aplicativo.
- Fonte: A origem do download (snapcraft.io, a loja Snapcraft da Canonical).
- Tamanho do download: O tamanho do arquivo snap.
Os canais disponíveis são:
- Estável: O canal padrão, com pacotes mais estáveis e confiáveis.
- Candidato: Menos estável, mas próximo ao canal estável, com softwares em fase de lançamento.
- Beta: Software em desenvolvimento, sem garantia de estabilidade.
- Edge: Para testes e usuários mais curiosos, não recomendado para uso regular.
Após a instalação, a lista de snaps instalados é atualizada:
snap list
A nova entrada aparece na lista. Podemos executar o programa com o seguinte comando:
sqlitebrowser
O aplicativo funciona normalmente, embora a interface possa parecer um pouco datada, lembrando GUIs do passado. No entanto, esse aspecto pode variar entre os snaps.
Instalação via linha de comando
A instalação de aplicativos via linha de comando permanece inalterada. A ferramenta `snap` permite gerenciar snaps e os comandos `apt-get` e `apt` ainda funcionam para pacotes DEB.
Vamos instalar o “sqlitebrowser” novamente pela linha de comando. As versões instaladas anteriormente não entram em conflito por estarem isoladas:
sudo apt-get install sqlitebrowser
Após a conclusão da instalação, ao pesquisar por “sqlitebrowser” no menu, duas versões do aplicativo estarão disponíveis.
Podemos executar ambas as versões simultaneamente.
A versão na parte de trás da imagem é a instalada via linha de comando, enquanto a da frente é a versão snap. As versões instaladas por diferentes métodos podem coexistir e funcionar perfeitamente, demonstrando o isolamento proporcionado pelos snaps. A versão `apt-get` é a 3.11.2 e a versão snap é a 3.11.99, apesar da versão da linha de comando ser mais antiga.
Em resumo, instalar aplicativos via `apt` ou `apt-get` não foi afetado pela mudança para o formato snap.
Qual método usar?
Se o método de instalação não for um fator relevante para você, opte pelos snaps.
No entanto, se algum dos seguintes fatores for um problema, evite a Central de Software e instale os aplicativos da maneira tradicional:
- O carregamento de snaps pode ser mais lento, especialmente em hardware mais antigo.
- Snaps ocupam mais espaço em disco.
- Snaps são atualizados automaticamente.
- Snaps podem não corresponder aos temas do seu sistema.
- Snaps nem sempre são “oficiais”, sendo frequentemente criados por voluntários.
Em um computador mais moderno, a diferença de velocidade entre snaps e aplicativos tradicionais é menor, sendo mais notável durante a instalação, quando o download de snaps pode levar mais tempo. Essa é uma tarefa única que não precisa ser realizada diariamente.
Mesmo que você decida abraçar totalmente os snaps, alguns aplicativos podem não estar disponíveis nesse formato, o que exigirá a instalação via linha de comando.
A Canonical demonstra seu apoio aos snaps com essa mudança. Os desenvolvedores do Ubuntu consideram que os snaps vieram para ficar. No entanto, a escolha entre usá-los, ignorá-los ou utilizar um sistema híbrido é sua.