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 universal ou de distribuição cruzada de software. 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 distribuições cruzadas, livres de dependência e fáceis de instalar, com todas as suas dependências para rodar 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 no desktop, na nuvem e no IoT. Distribuições suportadas incluem Ubuntu, Debian, Fedora, Arch Linux, Manjaro, e CentOS/RHEL.
Snaps são seguras – elas são confinadas e sandboxed para que não comprometam todo o sistema. Eles funcionam sob diferentes níveis de confinamento (que é o grau de isolamento do sistema base e uns dos outros). Mais notavelmente, cada snap tem 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 mais.
Outro conceito importante no ecossistema do snap são os Canais. Um canal determina qual lançamento de um snap é instalado e rastreado para atualizações e consiste e é subdividido por, tracks, níveis de risco e branches.
Os principais componentes do sistema de gerenciamento de pacotes snap são:
- snapd – o serviço de fundo que gerencia e mantém seus snaps em um sistema Linux.
- snap – tanto o formato do pacote 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 a poderosa ferramenta de linha de comando para construir snaps.
- snap store – um lugar onde desenvolvedores podem compartilhar seus snaps e usuários de Linux pesquisar e instalá-los.
Besides, snaps também atualizam automaticamente. Você pode configurar quando e como as atualizações ocorrem. Por padrão, o daemon snapd verifica por atualizações até quatro vezes por dia: cada verificação de atualização é chamada de refresh. Você também pode iniciar manualmente uma atualização.
Como instalar o Snapd no Linux
Como descrito acima, o daemon snapd é o serviço de fundo que gerencia e mantém seu ambiente snapd em um sistema Linux, implementando as políticas de confinamento e controlando as interfaces que permitem que os 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 em seu sistema, execute o comando apropriado para sua distribuição Linux.
------------ ------------ $ sudo apt update $ sudo apt install snapd------------ ------------# dnf install snapd------------ ------------# yum install epel-release # yum install snapd------------ ------------$ 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------------ ------------# pacman -S snapd------------ ------------# git clone https://aur.archlinux.org/snapd.git# cd snapd# makepkg -si
Após instalar o snapd em seu sistema, habilite a unidade systemd que gerencia o socket de comunicação principal do snap, usando os comandos systemctl como segue.
No Ubuntu e suas derivadas, isto deve ser acionado automaticamente pelo instalador do pacote.
$ sudo systemctl enable --now snapd.socket
Nota que você não pode executar o comando snap se o snapd.socket não estiver rodando. Execute os seguintes comandos para verificar se ele está ativo e está 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
Next, habilite o suporte clássico ao snap criando uma ligação simbólica 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-lhe instalar, configurar, actualizar e remover snaps, e interagir com o maior ecossistema de snap.
Antes de instalar um snap, pode verificar se ele existe na loja de snap. Por exemplo, se a aplicação pertence à categoria de “servidores de chat” ou “media players”, você pode executar estes comandos para procurar por ela, o que irá consultar a loja por 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 no snap store como nos snaps.
$ 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 rigoroso confinamento de segurança.
$ sudo snap install rocketchat-server
Pode optar por instalar de um canal diferente: edge, beta, ou candidato, por uma razão ou outra, usando as opções --edge
, --beta
, ou --candidate
respectivamente. Ou use a opção --channel
e especifique o canal que você deseja instalar de.
$ 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, vamos aprender como gerenciar snaps no sistema Linux.
Ver Snaps Instalados
Para exibir um resumo dos snaps instalados em seu sistema, use o seguinte comando.
$ snap list
Para listar a revisão atual de um snap sendo usado, especifique seu nome. Você também pode listar todas as suas revisões disponíveis, adicionando a opção --all
> opção.
$ snap list mailspringOR$ snap list --all mailspring
Atualizar e Reverter Snaps
Você pode atualizar um snap especificado, ou todos os snaps no sistema, se nenhum estiver especificado como a seguir. O comando refresh verifica o canal sendo rastreado pelo snap e ele baixa e instala uma nova versão do snap se estiver disponível.
$ sudo snap refresh mailspringOR$ sudo snap refresh#update all snaps on the local system
Após atualizar uma aplicação para uma nova versão, você pode reverter para uma versão usada anteriormente usando o comando revert. Note que os dados associados ao software também serão revertidos.
$ sudo snap revert mailspring
Agora quando você verifica todas as revisões da mailspring, a última revisão é desativada, uma revisão usada anteriormente está agora ativa.
$ snap list --all mailspring
Desabilitar/Enabilitar e Remover Snaps
Pode desabilitar um snap se não o quiser usar. Quando desativado, os binários e serviços de um snap não estarão mais disponíveis, entretanto, todos os dados ainda estarão lá.
$ sudo snap disable mailspring
Se você precisar usar o snap novamente, você pode ativá-lo de volta.
$ 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
como segue.
$ sudo snap remove --revision=482 mailspring
É fundamental 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, você pode restaurar os dados.
Conclusion
Snaps estão se tornando mais populares dentro da comunidade Linux, pois eles fornecem uma maneira fácil de instalar software em qualquer distribuição Linux. Neste guia, nós mostramos como instalar e trabalhar com snaps no Linux. Cobrimos como instalar snapd, instalar snaps, visualizar snaps instalados, atualizar e reverter snaps, e desativar/habilitar e remover snaps.
Você pode fazer perguntas ou entrar em contato conosco através do formulário de feedback abaixo. Na próxima parte deste guia, iremos abordar o gerenciamento de snaps (comandos, apelidos, serviços e snapshots) no Linux.