Instale Softwares no Linux com Snap: Guia Completo para Iniciantes

Ao optar por instalar softwares no Linux através do sistema snap, você se despede das complexidades de dependências e dos riscos de instabilidade em outros programas. Os pacotes Snap, inicialmente pensados para o Ubuntu, expandiram sua compatibilidade e agora são uma opção em diversas distribuições Linux.

O que são os Pacotes Snap?

No passado, a instalação de aplicativos no Linux podia ser uma experiência frustrante. Era comum instalar um programa e descobrir que faltava uma biblioteca ou outra dependência, ou que ela estava desatualizada. A solução era buscar e instalar o recurso faltante, apenas para descobrir que outro aplicativo dependia da versão que você acabou de substituir. Era um ciclo de correções e quebras.

Essa situação melhorou com o surgimento de sistemas de gerenciamento de pacotes mais eficientes, como
apt,
dnf e
pacman. Mesmo assim, ainda havia dificuldades ao instalar versões diferentes do mesmo aplicativo ou ao usar dois programas que entravam em conflito devido a diferentes versões de uma mesma biblioteca.

Uma solução para esses problemas é o empacotamento e implantação de aplicativos.
Snappy, o gerenciador de pacotes por trás dos snaps, é um dos mais populares. Ele se baseia no sistema de empacotamento Click, que surgiu com a iniciativa
Ubuntu Touch. Outras opções são
AppImage e
Flatpak, que você pode já ter encontrado.

Esses sistemas agrupam o aplicativo junto com todas as dependências e requisitos em um único arquivo compactado. O aplicativo é então executado em uma espécie de mini-contêiner, isolado e separado dos outros aplicativos. As bibliotecas e recursos empacotados com o aplicativo estão disponíveis apenas para ele.

Eles não são instalados no sentido tradicional, evitando conflitos com outros aplicativos que requerem diferentes versões dos mesmos recursos. É possível até mesmo instalar e executar aplicativos que precisam de versões conflitantes de uma biblioteca, pois cada aplicativo opera em seu próprio ambiente isolado.

Mas como esses pacotes funcionam, se não são instalados da forma usual? O arquivo único é baixado, descompactado e montado como um sistema de
arquivos virtuais SquashFS. Em seguida, ele é apresentado como um ambiente virtual. Tudo isso acontece nos bastidores, e você apenas percebe que instalou um aplicativo e pode usá-lo.

Claro, como cada pacote precisa conter todos os recursos necessários para o aplicativo, eles podem se tornar grandes. Também é fácil duplicar recursos que normalmente você instalaria apenas uma vez, como o
MySQL ou o
Apache. Se dois aplicativos snap precisarem dos mesmos recursos, cada um terá sua própria cópia.

No entanto, essa é a compensação pela simplicidade da instalação e pela eliminação de dores de cabeça com conflitos de recursos.

Instalando o snapd

O Snappy foi introduzido com o Ubuntu 16.04, então se você usa essa versão ou posterior, já está tudo pronto. Em nossa máquina, o Snappy já estava instalado no Manjaro 18.04, mas precisamos instalá-lo no Fedora 31.

“snap” é o nome dos arquivos de pacote e do comando que você usa para interagir com eles. Nos bastidores, o daemon snapd também é o nome do pacote que você precisa instalar se o Snappy ainda não estiver em seu computador.

Para instalar o snapd no Fedora, use o seguinte comando:

sudo dnf install snapd

Se você precisar instalá-lo no Manjaro, use estes comandos:

sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket

Você pode usar o comando “snap version” para verificar a versão do cliente snap, o daemon snapd e o número de série do software. O nome e a versão da sua distribuição Linux e a versão do kernel também serão exibidos.

Digite o seguinte:

snap version

Instalando Pacotes Snap

O processo de instalação de um pacote snap é bem simples. Você pode usar o comando “snap” para procurar pacotes e depois instalar o que desejar.

Nós digitamos o seguinte para procurar e instalar o editor de imagens GIMP:

snap find gimp

O snap fará uma busca por correspondências ao termo “gimp” e retornará seus resultados. Ele encontrará qualquer coisa que corresponda ou mencione o termo de pesquisa.

Para instalar um dos pacotes, usamos o valor da coluna “Nome”, como mostrado abaixo:

sudo snap install gimp

Durante o download, o número da porcentagem concluída aumenta e uma barra de progresso surge à esquerda da janela do terminal. Quando a instalação termina, aparece uma mensagem informando que o pacote foi instalado.

Você pode usar o comando “df” para
verificar a capacidade e o uso dos diferentes sistemas de arquivos configurados no seu computador Linux. Se direcionarmos a saída para o comando “grep” e procurarmos por “gimp”, podemos
isolar a entrada para o pacote que acabamos de instalar.

Nós digitamos o seguinte:

df | grep gimp

Isso mostra que o pacote snap foi montado como se fosse um sistema de arquivos. O ponto de montagem está no diretório snap: /snap/gimp/252. O “252” é o número de lançamento desta versão do GIMP.

O sistema de arquivos é listado como: /dev/loop18. Arquivos de dispositivo de loop são usados para tornar arquivos regulares acessíveis como dispositivos de bloco. Eles geralmente são usados para montar sistemas de arquivos em imagens de disco. Nesse caso, eles estão montando o sistema de arquivos SquashFS dentro do pacote snap. O “18” significa que este é o 18º arquivo de dispositivo /dev/loop em uso neste computador Linux.

Podemos usar o comando “df” para verificar isso rapidamente. Usaremos a opção “-t” (tipo) para limitar a saída apenas aos tipos de arquivo SquashFS.

Nós digitamos o seguinte:

df -t squashfs

Os sistemas de arquivos SquashFS montados estão listados. Cada um utiliza um arquivo de dispositivo /dev/loop, e há 18 deles.

Cada sistema de arquivos é montado em um diretório dentro de /snap. No entanto, isso não significa que existam 18 pacotes snap diferentes instalados neste computador. Esta é uma distribuição do Ubuntu, então alguns pacotes snap são instalados por padrão, e acabamos de instalar mais um.

Além disso, ao instalar o snapd, ele instala alguns pacotes snap essenciais para atender às necessidades de outros pacotes snap.

Podemos usar o comando “snap list”, como mostrado abaixo, para listar os pacotes snap instalados:

snap list

A saída ficou um pouco larga, então o final das listagens é mostrado abaixo.

Aqui está a lista completa:

Name                 Version                    Rev   Tracking  Publisher    Notes
core                 16-2.43.3                  8689  stable    canonical*   core
core18               20200124                   1668  stable    canonical*   base
gimp                 2.10.18                    252   stable    snapcrafters -
gnome-3-26-1604      3.26.0.20191114            98    stable/…  canonical*   -
gnome-3-28-1804      3.28.0-16-g27c9498.27c9498 116   stable    canonical*   -
gnome-calculator     3.34.1+git1.d34dc842       544   stable/…  canonical*   -
gnome-characters     v3.32.1+git3.b9120df       399   stable/…  canonical*   -
gnome-logs           3.34.0                     81    stable/…  canonical*   -
gnome-system-monitor 3.32.1-3-g0ea89b4922       127   stable/…  canonical*   -
gtk-common-themes    0.1-28-g1503258            1440  stable/…  canonical*   -

Como você pode ver, existem 10 pacotes snap instalados, não 18. No entanto, esses 10 pacotes geraram os 18 sistemas de arquivos SquashFS. As colunas da tabela são autoexplicativas, mas aqui estão alguns esclarecimentos:

Nome: O nome do pacote snap que foi instalado.
Versão: O número da versão do software no pacote snap.
Rev: O número de revisão do pacote snap.
Rastreamento: O canal que este pacote snap monitora para atualizações. Existem quatro:
Estável: O canal padrão. Como o próprio nome indica, este canal contém os pacotes mais estáveis.
Candidato: Este canal é menos estável, mas muito próximo dele, pois contém software de nível candidato a lançamento, que é código completo. Ele passa pelo teste final antes de ser movido para o canal estável.
Beta: Este canal tem qualidade de ciclo de desenvolvimento tardio, mas não é garantido que seja estável.
Edge: Para os primeiros testadores de build. Não use este canal para trabalhos importantes ou em um computador de produção. Aqui há riscos!

Editor: A pessoa, empresa ou organização que publicou o pacote snap. Se for um editor verificado (e sua janela de terminal suporta
Unicode), você verá uma marca de seleção verde ao lado do nome do editor. Se não for possível exibir a marca de seleção, você verá um asterisco.

Observações: Todos os comentários ou informações adicionais serão exibidos aqui.

Canais do Snap

Você pode usar a opção “info” para obter a descrição de um pacote snap.

snap info gtk-common-themes

O

Podemos ver qual canal o pacote está rastreando e a versão do software em cada um dos quatro canais. Na maioria das situações, é recomendado manter o canal estável.

Um pacote snap verifica quatro vezes por dia se há uma versão mais recente do software disponível no canal que está monitorando ou “rastreando”. Se você quiser alterar o canal de um pacote snap, use as opções “refresh” e “–channel”.

sudo snap refresh gtk-common-themes --channel=beta

O

Se uma versão mais recente do software estivesse disponível, ela seria instalada, mas não é o caso aqui. No entanto, o pacote snap agora está rastreando o canal beta. Assim que uma nova versão beta for lançada, ela será baixada e atualizada automaticamente.

Você pode usar a opção “–list” para verificar se há atualizações disponíveis para qualquer um dos pacotes snap instalados em seu computador.

sudo snap refresh --list

O

Você será notificado se algum dos canais que seus pacotes snap estão rastreando tiver versões de software mais recentes.

sudo snap refresh gtk-common-themes

O

Removendo um Pacote Snap

sudo snap remove gimp

O

Guia Rápido do Snap

Usar pacotes snap é bem simples, mas reunimos uma lista com alguns comandos que podem te ajudar:
Para buscar um pacote: snap find nome_do_pacote
Para instalar um pacote: sudo snap install nome_do_pacote
Para visualizar todos os pacotes instalados: snap list
Para obter informações sobre um pacote específico: snap info nome_do_pacote
Para alterar o canal de um pacote para receber atualizações: sudo snap refresh nome_do_pacote –channel=nome_do_canal
Para verificar se há atualizações disponíveis para algum pacote instalado: sudo snap refresh –list
Para atualizar manualmente um pacote: sudo snap refresh nome_do_pacote

Para desinstalar um pacote: sudo snap remove nome_do_pacote