Como trabalhar com pacotes instantâneos no Linux

O ícone de pacotes Snap.
Ubuntu

Quando você instala pacotes de software Linux com o snap, você pode dizer adeus ao inferno de dependências e quebrar 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  apt , 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 sistemas de implantação. Snappy é um dos mais populares deles. É baseado em um sistema de empacotamento e implantação chamado Click, que remonta à  iniciativa Ubuntu TouchAppImage 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 minicontêiner. É sandboxed 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 exigem 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.

Se eles não forem instalados da maneira usual, porém, como serão tratados? Bem, o arquivo do pacote único é baixado, descompactado e montado como um SquashFSsistema de arquivos virtual . Em seguida, é 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 snapaplicativos diferentes exigirem os mesmos recursos, cada um trará sua própria cópia.

Recomendado:  Como usar o modo Picture in Picture da Sierra com Netflix, YouTube e outros sites não suportados

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ê está 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 snapddaemon também é o nome do pacote que você deve instalar, se ainda não tiver o Snappy em seu computador.

Para instalar snapdno Fedora, digite o seguinte comando:

sudo dnf install snapd

O comando "sudo dnf install snapd" em uma janela de terminal.

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

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

Você pode usar o snap versioncomando para ver a versão do snapcliente, snapddaemon 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:

versão instantânea

O comando "versão instantânea" em uma janela de terminal.

Instalando pacotes instantâneos

É um processo bastante simples de instalar um snappacote. Você pode usar snappara procurar snappacotes e, em seguida, instalar o que deseja.

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

encontre gimp

O "snap find gimp" em uma janela de terminal.

snapprocura 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 Namecoluna, conforme mostrado abaixo:

sudo snap install gimp

O comando "sudo snap install gimp" em uma janela de terminal.

À medida que ele baixa, 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 mensagem "gimp 2.10.18 de Snapcrafters instalado" em uma janela de terminal.

Você pode usar o dfcomando para verificar a capacidade e o uso dos diferentes sistemas de arquivos configurados em seu computador Linux. Se canalizarmos sua saída para grepcomando e pesquisarmos “gimp”,  isolaremos a entrada para o pacote que acabamos de instalar.

Nós digitamos o seguinte:

df | grep gimp

O comando "df | grep gimp" em uma janela de terminal.

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

O sistema de arquivos é listado como:  /dev/loop18. Os 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 os sistemas de arquivos em imagens de disco. Nesse caso, eles estão montando o SquashFSsistema de arquivos dentro do snappacote. O “18” significa que este é o 18º  /dev/loop arquivo de dispositivo em uso neste computador Linux.

Recomendado:  RIP AIM, o aplicativo de mensagens que a AOL nunca quis

Podemos usar o dfcomando para verificar isso rapidamente. Usaremos a opção – t(tipo) para limitar a saída apenas aos SquashFStipos de arquivo.

Nós digitamos o seguinte:

df -t squashfs

O comando "df -t squashfs" em uma janela de terminal.

Os SquashFSsistemas de arquivos montados  são listados. Um  /dev/looparquivo de dispositivo trata de cada um, e existem 18 deles.

Os sistemas de arquivos SquashFS foram listados em uma janela de terminal.

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

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

Podemos usar o snap listcomando, conforme mostrado abaixo, para listar os snap pacotes instalados :

lista instantânea

Uma lista instantânea em uma janela de terminal.

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

O final da saída da lista instantânea em uma janela de terminal.

Aqui está a lista completa:

Nome Versão Rev Tracking Notas do Editor
núcleo 16-2,43,3 8689 núcleo canônico estável *
core18 20200124 1668 base canônica estável *
gimp 2.10.18 252 snapcrafters estáveis ​​-
gnome-3-26-1604 3.26.0.20191114 98 estável /… canônico * -
gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 canônico estável * -
gnome-calculator 3.34.1 + git1.d34dc842 544 estável /… canônico * -
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 estável / ... canônico * -
gtk-common-themes 0.1-28-g1503258 1440 estável /… canônico * -

Como você pode ver, existem 10 pacotes snap instalados, não 18. No entanto, esses 10 pacotes deram origem a 18 SquashFSsistemas de arquivos. As colunas da tabela são bastante autoexplicativas, mas aqui estão alguns esclarecimentos:

  • Nome : o nome do snappacote que foi instalado.
  • Versão : o número da versão do software no snappacote.
  • Rev : o número de revisão do snap pacote.
  • Rastreamento : o canal que este snappacote 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 testadores de build iniciais. 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 snappacote. Se for um editor verificado (e sua janela de terminal for compatível com 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 : Quaisquer comentários ou informações adicionais serão exibidos aqui.
Recomendado:  Como ocultar sua lista de amigos no Facebook

Os canais instantâneos

Você pode usar a infoopção de obter uma descrição de um snappacote.

Para fazer isso, digitamos o seguinte:

snap info gtk-common-themes

O comando "snap info gtk-common-themes" em uma janela de terminal.

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

Um snappacote 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 snappacote rastreia, você pode usar as opções refresh--channel.

Para fazer isso, digitamos o seguinte:

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

O comando "sudo snap refresh gtk-common-themes --channel = beta" em uma janela de terminal.

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

Você pode usar a --listopção para verificar se as atualizações estão disponíveis para qualquer um dos snappacotes instalados em seu computador.

Para fazer isso, digitamos o seguinte:

sudo snap refresh --list

O comando "sudo snap refresh --list" em uma janela de terminal.

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

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

sudo snap refresh gtk-common-themes

O comando "sudo snap refresh gtk-common-themes" em uma janela de terminal.

Removendo um pacote instantâneo

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

sudo snap remove gimp

O comando "sudo snap remove gimp" em uma janela de terminal.

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: snap list
  • 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