Nos últimos anos, a comunidade Linux tem sido abençoada com alguns avanços notáveis na área de gerenciamento de pacotes em sistemas Linux, especialmente quando se trata de empacotamento e distribuição de software universal ou interdistribuição. Um desses avanços é o formato de pacote Snap desenvolvido pela Canonical, os criadores do popular Ubuntu Linux.
O que são Pacotes Snap?
Snaps são aplicativos de fácil instalação, sem dependências e interdistribuição, embalados com todas as suas dependências para serem executados em todas as principais distribuições Linux. A partir de uma única compilação, um snap (aplicativo) será executado em todas as distribuições Linux suportadas em desktops, na nuvem e em IoT. As distribuições suportadas incluem Ubuntu, Debian, Fedora, Arch Linux, Manjaro e CentOS/RHEL.
Snaps são seguros – eles são confinados e isolados para que não comprometam todo o sistema. Eles são executados sob diferentes níveis de confinamento (que é o grau de isolamento do sistema base e entre si). Mais notavelmente, cada snap possui uma interface cuidadosamente selecionada pelo criador do snap, com base nos requisitos do snap, para fornecer acesso a recursos específicos do sistema fora de seu confinamento, como acesso à rede, acesso ao desktop e muito mais.
Outro conceito importante no ecossistema do snap é Canais. Um canal determina qual versão de um snap está instalada e é rastreada para atualizações, e é composto e subdividido por faixas, níveis de risco e ramos.
Os principais componentes do sistema de gerenciamento de pacotes snap são:
- snapd – o serviço em segundo plano que gerencia e mantém seus snaps em um sistema Linux.
- snap – tanto o formato de pacote de aplicativo quanto a ferramenta de interface de linha de comando usada para instalar e remover snaps e fazer muitas outras coisas no ecossistema snap.
- snapcraft – o framework e poderosa ferramenta de linha de comando para construir snaps.
- Loja Snap – um lugar onde os desenvolvedores podem compartilhar seus snaps e os usuários do Linux podem pesquisar e instalá-los.
Além disso, snaps também são atualizados automaticamente. Você pode configurar quando e como as atualizações ocorrem. Por padrão, o daemon snapd verifica as atualizações até quatro vezes por dia: cada verificação de atualização é chamada de atualização. Você também pode iniciar manualmente uma atualização.
Como Instalar o Snapd no Linux
Como descrito acima, o daemon snapd é o serviço em segundo plano que gerencia e mantém seu ambiente snap em um sistema Linux, implementando as políticas de confinamento e controlando as interfaces que permitem que snaps acessem recursos específicos do sistema. Ele também fornece o comando snap e serve para muitos outros propósitos.
Para instalar o pacote snapd no seu sistema, execute o comando apropriado para a sua distribuição Linux.
------------ [On Debian and Ubuntu] ------------ $ sudo apt update $ sudo apt install snapd ------------ [On Fedora Linux] ------------ # dnf install snapd ------------ [On CentOS and RHEL] ------------ # yum install epel-release # yum install snapd ------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------ $ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy $ sudo zypper --gpg-auto-import-keys refresh $ sudo zypper dup --from snappy $ sudo zypper install snapd ------------ [On Manjaro Linux] ------------ # pacman -S snapd ------------ [On Arch Linux] ------------ # git clone https://aur.archlinux.org/snapd.git # cd snapd # makepkg -si
Após instalar o snapd no seu sistema, habilite a unidade systemd que gerencia o principal soquete de comunicação do snap, usando os comandos systemctl da seguinte forma.
No Ubuntu e suas derivadas, isso deve ser acionado automaticamente pelo instalador de pacotes.
$ sudo systemctl enable --now snapd.socket
Observe que você não pode executar o comando snap se o snapd.socket não estiver em execução. Execute os seguintes comandos para verificar se ele está ativo e habilitado para iniciar automaticamente no boot do sistema.
$ sudo systemctl is-active snapd.socket $ sudo systemctl status snapd.socket $ sudo systemctl is-enabled snapd.socket

Em seguida, habilite o suporte a snap clássico criando um link simbólico entre /var/lib/snapd/snap e /snap da seguinte forma.
$ sudo ln -s /var/lib/snapd/snap /snap
Para verificar a versão do snapd e da ferramenta de linha de comando snap instalada no seu sistema, execute o seguinte comando.
$ snap version

Como Instalar Snaps no Linux
O comando snap permite que você instale, configure, atualize e remova snaps, e interaja com o ecossistema maior de snaps.
Antes de instalar um snap, você pode verificar se ele existe na loja de snaps. Por exemplo, se o aplicativo pertence à categoria de “servidores de bate-papo” ou “reprodutores de mídia”, você pode executar esses comandos para procurá-lo, o que consultará a loja em busca de pacotes disponíveis no canal estável.
$ snap find "chat servers" $ snap find "media players"

Para mostrar informações detalhadas sobre um snap, por exemplo, rocketchat-server, você pode especificar seu nome ou caminho. Note que os nomes são procurados tanto na loja de snaps quanto nos snaps instalados.
$ snap info rocketchat-server

Para instalar um snap no seu sistema, por exemplo, rocketchat-server, execute o seguinte comando. Se nenhuma opção for fornecida, um snap é instalado rastreando o canal “estável”, com confinamento de segurança estrito.
$ sudo snap install rocketchat-server

Você pode optar por instalar de um canal diferente: edge, beta ou candidate, por um motivo ou outro, usando as opções --edge
, --beta
ou --candidate
respectivamente. Ou use a opção --channel
e especifique o canal de onde deseja instalar.
$ sudo snap install --edge rocketchat-server $ sudo snap install --beta rocketchat-server $ sudo snap install --candidate rocketchat-server
Gerenciar Snaps no Linux
Nesta seção, aprenderemos como gerenciar snaps no sistema Linux.
Visualizando Snaps Instalados
Para exibir um resumo dos snaps instalados no seu sistema, use o seguinte comando.
$ snap list

Para listar a revisão atual de um snap em uso, especifique seu nome. Você também pode listar todas as revisões disponíveis adicionando a opção --all
.
$ snap list mailspring OR $ snap list --all mailspring

Atualizando e Revertendo Snaps
Você pode atualizar um snap especificado, ou todos os snaps no sistema se nenhum for especificado da seguinte forma. O comando refresh verifica o canal sendo rastreado pelo snap e baixa e instala uma versão mais recente do snap se estiver disponível.
$ sudo snap refresh mailspring OR $ sudo snap refresh #update all snaps on the local system

Depois de atualizar um aplicativo para uma nova versão, você pode reverter para uma versão usada anteriormente usando o comando revert. Observe que os dados associados ao software também serão revertidos.
$ sudo snap revert mailspring

Agora, ao verificar todas as revisões do mailspring, a revisão mais recente está desativada, uma revisão usada anteriormente está agora ativa.
$ snap list --all mailspring

Desabilitando/Habilitando e Removendo Snaps
Você pode desabilitar um snap se não quiser usá-lo. Quando desabilitado, os binários e serviços de um snap não estarão mais disponíveis, no entanto, todos os dados ainda estarão lá.
$ sudo snap disable mailspring
Se precisar usar o snap novamente, você pode habilitá-lo novamente.
$ sudo snap enable mailspring
Para remover completamente um snap do seu sistema, use o comando remove. Por padrão, todas as revisões de um snap são removidas.
$ sudo snap remove mailspring
Para remover uma revisão específica, use a opção --revision
da seguinte forma.
$ sudo snap remove --revision=482 mailspring
É importante notar que quando você remove um snap, seus dados (como usuário interno, sistema e dados de configuração) são salvos pelo snapd (versão 2.39 e superior) como um snapshot e armazenados no sistema por 31 dias. Caso você reinstale o snap dentro dos 31 dias, poderá restaurar os dados.
Conclusão
Snaps estão se tornando mais populares na comunidade Linux, pois fornecem uma maneira fácil de instalar software em qualquer distribuição Linux. Neste guia, mostramos como instalar e trabalhar com snaps no Linux. Cobrimos como instalar snapd, instalar snaps, visualizar snaps instalados, atualizar e reverter snaps, e desabilitar/habilitar e remover snaps.
Você pode fazer perguntas ou nos contatar através do formulário de feedback abaixo. Na próxima parte deste guia, cobriremos gerenciamento de snaps (comandos, aliases, serviços e snapshots) no Linux.