Utilizando Snap nas principais distros Linux 2022

Utilizando Snap nas principais distros Linux 2022

04/07/2022 Dicas linux 2

O empacotamento em Snap ou Snappy foi desenvolvido pela Canonical, empresa que “faz” o Ubuntu, para ser implementado em aplicações em nuvem (cloud) mas, depois foi portado para sistema IoT (Internet das Coisas) e para Desktops.

Nos dias atuais, além das modalidades acima citadas, o snap pode ser usado para aplicações em servidores também.

Como funciona o Snap

Como o Flatpak, o Snap funciona em forma de contêiner fazendo com que o aplicativo fique isolado do sistema e que não interfira em nenhum outro. Também é utilizado a forma de “sandbox”, onde nesta “caixa” ficam todas as dependências e bibliotecas necessárias para que o app possa funcionar.

Um exemplo prático em que o contêiner pode ser útil. Imagine que você instalou o app CalculadoraDeFrete e ela precisa de uma lib ou dependência do sistema, vamos dizer que seja o arquivo cdf.x. Até aí tudo tranquilo, pois a sua CalculadoraDeFrete vai lá e “pega” essa lib e “vida que segue”. Mas vamos supor que depois de um tempo você vai lá e instala o app CalculadoraDeHoras e ela também precisa dessa lib cdf.x, até agora tranquilo, pois o app vai lá e “pega”.

Mas se você por alguma razão precisar remover essa lib cdf.x, os dois apps vão parar de funcionar. Utilizando o contêiner , você pode por cópias dessa lib (cdf.x) dentro das sandboxes CalculadoraDeFrete e CalculadoraDeHoras, assim você não corre o risco de ter os apps parando de funcionar.

Essa foi uma forma bem resumida de como o sandbox e o contêiner utilizados pelo Snap podem ajudar na distribuição de apps no Linux.

Segurança no Snap

Os snaps quando em execução tem um acesso limitado ao sistema do host (ou do usuário), o que torna a necessidade da utilização de alguma interface gráfica (podendo ser através da Snap Store por exemplo) ou através de comandos, para a liberação de algumas funcionalidades, como a gravação de áudio, acesso à WebCams, dispositivos USB e afins. Para gerenciar a segurança é utilizado o AppArmor, que é um Módulo de Segurança do Kernel Linux.

Conheça o SNAPD

O funcionamento do snap dentro da distro vai depender da instalação de um serviço para isso, que ficará rodando em segundo plano (background) para gerenciar e manter os snaps atualizados de forma automática. Esse serviço é o Snapd.

Agora se você quiser construir (build) e publicar os seus próprios snaps, vai precisar da ferramenta e do framework Snapcraft. E para distribuir o seu aplicativo em snap, você vai utilizar a Snap Store.

Os snaps suportam o compartilhamento de dados e de Unix sockets entre eles, com isso é possível compartilhar bibliotecas e frameworks entre os aplicativos, isso ajuda na redução do tamanho do Snap e também reduz duplicidades. Para auxiliar nesta tarefa é utilizado o sistema de compressão SquashFS, gerando um arquivo com a extensão .snap.

A minha distro tem ou não tem o Snap já instalado?

Por ser uma tecnologia desenvolvida pela Canonical, dona do Ubuntu, algumas distros já vem com o snap pré-instalado nelas, e não precisando fazer mais nada. As distros que já tem são:

DistrosPré-Instalado?
KDE NeonSim
Solus 3 e posterioresSim
Ubuntu 16.04/18.04/20.04 LTSSim
ManjaroSim
Zorin OSSim
Flavours do Ubuntu*Sim

Tabela de distros com Snaps pré-instalados

*A flavour Lubuntu tem um “porém” em relação ao Snap, somente à partir da versão 18.10 do sistema o pacote snap passou a vir pré-instalado, nas versões entre a 14.04 e 18.04 LTS ele precisa ser instalado manualmente.

Mas, algumas distribuições preferem só trazer o pacote nos repositórios e deixar que o usuário escolha se quer ou não instalar o snap, e as distros são:

DistrosPré-InstaladoNos repositórios
Arch LinuxNãoSim
DebianNãoSim
FedoraNãoSim
openSUSENãoSim
Pop!_OSNãoSim
CentOSNãoSim
elementaryOSNãoSim
Linux Mint*NãoSim

Tabela de distros com o snap pré-instalado e nos repositórios

*O Linux Mint a partir da versão 20 começou a bloquear a instalação do snapd. Para poder utilizá-lo é necessário remover o bloqueio, o processo para isso pode ser consultado aqui.

Instalando o Snap na sua distro

Para instalar o snap vamos dividir por base das distros, para facilitar as coisas e não ficar tão bagunçado assim.

Debian

Vamos começar pelas distros baseadas no Debian 9 (Stretch) ou Debian 10 (Buster), assim você vai precisar rodar os seguintes comandos:

sudo apt update
sudo apt install snapd

Se por acaso o sudo não estiver instalado, vai ser preciso “mudar” para o usuário root, o que muda um pouco os comandos necessários para a instalação. A sequência deles são:

su root
apt update
apt install snapd

Depois de instalado reinicie o sistema ou faça logoff para que os caminhos do snap sejam criados corretamente. Após isso, vai ser preciso instalar o core para receber as últimas versões do snapd, é o comando é:

sudo snap install core

Aí faça mais um logoff ou restart do sistema e o seu Debian já está pronto para usar os apps da Snap Store.

Ubuntu

Você pode estar estranhando que vou explicar como instalar o snap no Ubuntu, visto que mencionei alguns parágrafos acima que o mesmo já vinha com o pacote pré-instalado, mas sempre é bom deixar registrado como fazer a instalação corretamente caso você precise.

No Ubuntu, as versões entre a 14.04 LTS (Trusty Tahr) e a 15.10 (Wily Werewolf), incluindo as flavours oficiais, não tem o snapd pré-instalado, sendo necessário a instalação do mesmo, que você pode procurar no Ubuntu Software Centre (snapd) ou rodar os seguintes comandos:

sudo apt update
sudo apt install snapd

Depois é só reiniciar o sistema ou fazer o logoff e começar a usar os apps da Snap Store.

Agora, se você estiver utilizando o Ubuntu 16.04 LTS (Xenial Xerus) ou alguma versão acima, pode ir direto para a Snap Store e escolher os programas. A única exceção é o Lubuntu, que já explicamos acima.

2 comentários

  1. Itís nearly impossible to find educated people for this subject, but you sound like you know what youíre talking about! Thanks

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *