No universo Linux, a instalação de software se desdobra em múltiplas abordagens. Há os pacotes Debian, os RPM do Red Hat, o repositório do usuário do Arch Linux, a árvore Portage do Gentoo, AppImages, arquivos tar.gz contendo binários estáticos e muito mais. Apesar dessa vasta gama de métodos de instalação, ainda persistem desafios. Um deles é a dificuldade em distribuir software profissional para todas as distribuições Linux. O time do Ubuntu se dedica a solucionar este problema com os Pacotes Snap. Vamos explorar a necessidade, o uso e a instalação desses pacotes.
AVISO: Desça para o final do artigo e assista ao tutorial em vídeo.
O Surgimento dos Pacotes Snap
Desenvolvedores frequentemente se encontram na árdua tarefa de empacotar seus programas em diversos formatos, o que pode ser desanimador. A criação desses arquivos de pacote consome tempo, e muitos softwares acabam não chegando ao Linux. Em resposta, o pessoal do Ubuntu desenvolveu os pacotes Snap. Um “snap” pode ser instalado a partir da loja de snaps e engloba tudo o que um programa precisa para funcionar.
Isso significa que tudo o que o aplicativo requer – bibliotecas, binários, arquivos de imagem e áudio – é autocontido, permitindo sua execução independentemente do sistema. Isso garante que o programa funcionará, não importa o quão desatualizado ou mal configurado o sistema host esteja. Isso possibilita instalar snaps em qualquer distribuição Linux, tornando-o um “instalador universal” que qualquer desenvolvedor, grande ou pequeno, pode usar e até criar sua própria loja de snaps!
Instalação e Execução do Snapd
O Snapd é a tecnologia que viabiliza a execução dos snaps no Linux. A empresa por trás dos snaps colaborou com outros fabricantes de distribuições Linux para que os sistemas mais populares executem e instalem snaps facilmente. Veja como habilitá-lo:
Observação: Usuários do Ubuntu e de distribuições baseadas no Ubuntu já têm o Snapd instalado.
Debian testing/instável
sudo apt install snapd
Fedora
sudo dnf install snapd sudo systemctl enable --now snapd.socket
Arch Linux
sudo pacman -S snapd sudo systemctl enable --now snapd.socket
OpenSUSE Leap 42.2
sudo zypper addrepo https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_42.2/ snappy sudo zypper install snapd sudo systemctl enable --now snapd.socket
OpenSUSE Tumbleweed
sudo zypper addrepo https://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed/ snappy sudo zypper install snapd sudo systemctl enable --now snapd.socket
Gentoo
sudo -s
nano -w /etc/portage/repos.conf/gentoo-snappy.conf
Cole o seguinte:
[gentoo-snappy] # An unofficial overlay that supports the installation of the "Snappy" backbone. # Maintainer: Clayton "kefnab" Dobbs ([email protected]) # Upstream Maintainer: Zygmunt "zyga" Krynicki ([email protected]) location = /usr/local/portage/gentoo-snappy sync-type = git sync-uri = https://github.com/zyga/gentoo-snappy.git priority = 50 auto-sync = yes
Salve o arquivo com ctrl + O.
emaint sync --repo gentoo-snappy
Utilizando Snaps
Como mencionado, os snaps são hospedados na “snap store”, administrada pelo Ubuntu e pela Canonical. Qualquer pessoa pode postar um snap gratuitamente. Para quem deseja publicar seus próprios pacotes na loja, visite Snapcraft.io. Este site oferece informações detalhadas para começar.
Para procurar softwares na loja, utilize o comando find:
snap find programname
Por exemplo:
snap find telegram
Isso exibirá uma lista de pacotes snap instaláveis com a palavra-chave “telegram”. Analise a lista e identifique o pacote desejado. Utilize o comando install para instalá-lo.
sudo snap install telegram-latest
Isso fará o download da versão mais recente do snap e a instalará no sistema, montando o contêiner para que o usuário possa acessar o software. Para verificar onde o snap está montado, utilize o comando lsblk, pois o software é um volume montado.
Remova um pacote snap com o comando remove.
Por exemplo:
sudo snap remove telegram-latest
Esqueceu o nome do snap que deseja remover? Utilize:
snap list
O comando list exibirá todos os snaps instalados. Anote o nome e remova-o com o comando remove acima.
Observação: Explore outros comandos usando snap –help
Atualizando Snaps
Como qualquer software, os snaps precisam ser atualizados. O daemon snap gerencia os contêineres no sistema e não serão atualizados por meios convencionais. Para atualizá-los, utilize o comando refresh.
sudo snap refresh
Conclusão
Os pacotes Snap têm potencial para transformar a instalação e o uso de software no Linux, simplificando a distribuição. Em vez de os desenvolvedores criarem múltiplos pacotes e métodos de entrega, eles podem usar um único contêiner snap, auto-suficiente com bibliotecas, código e outros arquivos essenciais que os usuários podem instalar com um único comando.
Snaps não são perfeitos. Alguns novos usuários do Linux podem encontrar dificuldades com eles, principalmente pela instalação ser via linha de comando. Espera-se que com o aumento da popularidade dos pacotes snap, o Ubuntu desenvolva uma interface gráfica amigável. Por enquanto, a linha de comando é a ferramenta disponível.