Como trabalhar com pacotes instantâneos no Linux

Ao instalar pacotes de software Linux com snap, você pode dizer adeus ao inferno de dependências e à quebra de outros aplicativos de trabalho. Os pacotes Snap foram originalmente projetados para o Ubuntu, mas agora estão disponíveis em uma variedade de distribuições Linux.

O que são pacotes instantâneos?

No passado, instalar aplicativos no Linux era uma experiência potencialmente frustrante. Você instalaria algo apenas para descobrir que uma biblioteca específica ou outra dependência estava ausente ou desatualizada. Você então procuraria o recurso ausente e o instalaria, apenas para descobrir que outro aplicativo dependia da versão da biblioteca que você acabou de substituir. Conserte um, quebre um, repita.

Isso melhorou com melhores sistemas de gerenciamento de pacotes, como apto, dnf, e pacman. No entanto, você ainda enfrentará dificuldades se precisar instalar diferentes versões do mesmo aplicativo. Ou, se você usar dois aplicativos que entram em conflito porque estão vinculados a versões específicas – mas diferentes – de uma biblioteca.

Uma solução para esses problemas é o empacotamento de aplicativos e os sistemas de implantação. Snappy é um dos mais populares deles. É baseado em um sistema de empacotamento e implantação chamado Click, que remonta ao Ubuntu Touch iniciativa. AppImage e FlatPack são outros que você pode ter encontrado.

Esses sistemas encapsulam o aplicativo junto com quaisquer dependências e outros requisitos em um único arquivo compactado. O aplicativo então é executado em uma espécie de mini-contêiner. Ele é colocado em área restrita e separado de outros aplicativos. As bibliotecas e outros recursos com os quais o aplicativo é empacotado ou requer estão disponíveis apenas para ele.

Eles não são instalados no sentido tradicional, portanto, não causam problemas com outros aplicativos que requerem versões diferentes dos mesmos recursos. Você pode até instalar e executar aplicativos que precisam de versões de biblioteca conflitantes porque cada aplicativo está em sua própria sandbox.

Porém, se não forem instalados da maneira usual, como serão tratados? Bem, o arquivo do pacote único é baixado, descompactado e montado como um SquashFSsistema de arquivo virtual. Em seguida, ele é apresentado a você como um ambiente virtual. Tudo isso acontece nos bastidores. Você só saberá que instalou um aplicativo e, agora, tem acesso a ele.

Obviamente, como cada arquivo de pacote deve conter todos os recursos de que o aplicativo precisa, os arquivos de pacote podem ser grandes. Também é fácil duplicar um recurso que você normalmente instalaria apenas uma vez, como MySQL ou Apache. Se dois aplicativos de snap diferentes exigirem os mesmos recursos, cada um trará sua própria cópia.

No entanto, esta é a compensação pela simplicidade da instalação e a remoção das dores de cabeça de conflito de recursos.

Instalando o snapd

O Snappy foi introduzido com o Ubuntu 16.04, portanto, se você estiver executando essa versão ou posterior, já está pronto para começar. Em nossa máquina, o Snappy foi instalado no Manjaro 18.04, mas tivemos que instalá-lo no Fedora 31.

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

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

sudo dnf install snapd

O

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 ver a versão do snap client, snapd daemon 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 para você.

Digite o seguinte:

snap version

O

Instalando pacotes instantâneos

É um processo bastante simples de instalar um pacote snap. Você pode usar o snap para procurar pacotes de snap e, em seguida, instalar o que deseja.

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

snap find gimp

O

buscas rápidas por correspondências com a pista de pesquisa “gimp” e retorna suas descobertas. Ele encontrará qualquer coisa que corresponda ou mencione o termo de pesquisa.

Para instalar um dos pacotes, usamos o valor da coluna Nome, conforme mostrado abaixo:

sudo snap install gimp

O

Durante o download, o número de porcentagem concluída aumenta e uma barra de progresso rasteja à esquerda da janela do terminal. Quando a instalação for concluída, aparecerá uma mensagem (conforme mostrado abaixo) informando que o pacote foi instalado.

UMA

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

Nós digitamos o seguinte:

df | grep gimp

O

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

O sistema de arquivos está listado como: / dev / loop18. Os arquivos de dispositivo de loop são usados ​​para tornar os arquivos regulares acessíveis como dispositivos de bloco. Eles normalmente são usados ​​para montar os 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

O

Os sistemas de arquivos SquashFS montados são listados. Um arquivo de dispositivo / dev / loop trata de cada um, e há 18 deles.

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

Além disso, quando você instala o snapd, ele instala alguns pacotes de snap principais para lidar com as necessidades de outros pacotes de snap.

Podemos usar o comando snap list, conforme 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 deram origem aos 18 sistemas de arquivos SquashFS. As colunas da tabela são bastante 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 a ele porque contém software de nível de 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. Você não deve usar este canal para trabalhos importantes ou em um computador de produção. Aqui estão dragões!

Editor: o indivíduo, empresa ou organização que lançou o pacote snap. Se fosse 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 puder mostrar uma marca de seleção, você verá um asterisco
.

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

Os canais instantâneos

Você pode usar a opção info para obter uma descrição de um pacote instantâneo.

snap info gtk-common-themes

Para fazer isso, digitamos o seguinte:

O

Podemos ver qual canal o pacote está rastreando e a versão do software nos pacotes de snap em cada um dos quatro canais. Na maioria das circunstâncias, você deve permanecer no canal estável.

Um pacote instantâneo verifica quatro vezes por dia para ver se uma versão mais recente do software está disponível no canal que está assistindo ou “rastreando”. Se você quiser mudar o canal que um pacote snap rastreia, você pode usar as opções de atualização e –channel.

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

Para fazer isso, digitamos o seguinte:

O

Se uma versão mais recente do software estivesse disponível, ela seria instalada, mas não foi o caso aqui. No entanto, o pacote snap agora está rastreando o canal beta. Assim que uma nova versão beta é lançada, ela é 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

Para fazer isso, digitamos o seguinte:

O

Você será informado se algum dos canais que os pacotes de snap em seu computador estão rastreando contém versões de software mais recentes.

sudo snap refresh gtk-common-themes

Se uma versão mais recente do software estiver disponível, você pode usar a opção de atualização, conforme mostrado abaixo, para forçar manualmente uma atualização:

O

Removendo um pacote instantâneo

sudo snap remove gimp

Para desinstalar um pacote snap, você pode usar a opção remover, conforme mostrado abaixo:

O

A folha de referências instantâneas

Usar pacotes snap é muito simples, mas compilamos uma lista de alguns comandos que o ajudarão:
Para pesquisar um pacote: snap find package_name
Para instalar um pacote: sudo snap install package_name
Para ver todos os pacotes instalados: lista instantânea
Para obter informações sobre um único pacote: snap info package_name
Para mudar o canal que um pacote rastreia para atualizações: sudo snap refresh package_name –channel = channel_name
Para ver se as atualizações estão prontas para algum pacote instalado: sudo snap refresh –list
Para atualizar manualmente um pacote: sudo snap refresh package_name

Para desinstalar um pacote: sudo snap remove package_name