Como trabalhar com pacotes Snap no Linux
Publicados: 2022-01-29 Ao instalar pacotes de software Linux com snap
, você pode dizer adeus ao inferno da dependência e quebrar outros aplicativos em funcionamento. Os pacotes Snap foram originalmente projetados para o Ubuntu, mas agora estão disponíveis em várias distribuições do Linux.
O que são pacotes Snap?
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 caçaria o recurso ausente e o instalaria, apenas para encontrar outro aplicativo que dependesse 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 enfrenta dificuldades se precisar de versões diferentes do mesmo aplicativo instaladas. 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 são os sistemas de empacotamento e implantação de aplicativos. Snappy é um dos mais populares deles. É baseado em um sistema de empacotamento e implantação chamado Click, que remonta à iniciativa Ubuntu Touch. 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 é executado em uma espécie de mini-contêiner. É sandboxed e separado de outros aplicativos. As bibliotecas e outros recursos com os quais o aplicativo está 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é mesmo instalar e executar aplicativos que precisam de versões de biblioteca conflitantes porque cada aplicativo está em sua própria caixa de proteção.
Se eles não forem instalados da maneira usual, como eles são tratados? Bem, o arquivo de pacote único é baixado, descompactado e montado como um sistema de arquivos virtual SquashFS
. Em seguida, é apresentado a você como um ambiente virtual. Tudo isso acontece nos bastidores. Tudo o que você 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 deles trará sua própria cópia.
Esta é a compensação pela simplicidade da instalação e a remoção das dores de cabeça do conflito de recursos.
Instalando snapd
O Snappy foi introduzido com o Ubuntu 16.04, portanto, se você estiver executando essa versão ou posterior, já estará pronto. 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 daemon snapd
também é o nome do pacote que você precisa instalar se ainda não tiver o Snappy em seu computador.
Para instalar snapd
no Fedora digite 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 ver a versão do cliente snap
, daemon snapd
e o número de série do software. O nome e o lançamento de sua distribuição Linux e a versão do kernel também serão exibidos para você.
Digite o seguinte:
versão instantânea
Instalando pacotes snap
É um processo bastante simples para instalar um pacote snap
. Você pode usar o snap
para procurar pacotes de snap
e, em seguida, instalar o que deseja.
Digitamos o seguinte para procurar e instalar o editor de imagens gimp:
snap encontrar gimp
snap
procura 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 Name
, conforme mostrado abaixo:
sudo snap instalar gimp
Durante o download, o número de porcentagem concluída aumenta e uma barra de progresso aparece à esquerda da janela do terminal. Quando a instalação estiver concluída, aparecerá uma mensagem (como mostrado abaixo) 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 em seu computador Linux. Se canalizarmos sua saída para o comando grep
e procurarmos por “gimp”, isolamos a entrada do pacote que acabamos de instalar.
Digitamos o seguinte:
df | grep gimp
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
.
RELACIONADO: Como usar o comando grep no Linux
O sistema de arquivos está listado como: /dev/loop18
. Arquivos de dispositivo de loop são usados para tornar arquivos regulares acessíveis como dispositivos de bloco. Eles são normalmente 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
.
Digitamos o seguinte:
df -t squashfs
Os sistemas de arquivos SquashFS
montados são listados. Um arquivo de dispositivo /dev/loop
trata cada um deles, e existem 18 deles.
Cada sistema de arquivos é montado em um diretório dentro do diretório /snap
. No entanto, isso não significa que existam 18 pacotes de snap
diferentes instalados neste computador. Esta é uma distribuição do Ubuntu, então 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 atender às necessidades de outros pacotes de snap
.
Podemos usar o comando snap list
, conforme mostrado abaixo, para listar os pacotes snap
instalados:
lista instantânea
A saída foi um pouco larga, então o final das listagens é mostrado abaixo.
Aqui está toda a listagem:
Nome Versão Rastreamento de Revisão 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 estável/... canônico* - gnome-logs 3.34.0 81 estável/... canônico* - 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 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 é code-complete. Ele passa por testes finais 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 compilação. Você não deve usar este canal para trabalhos importantes ou em um computador de produção. Aqui há dragões!
- Publicador : o indivíduo, empresa ou organização que lançou o pacote
snap
. 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 (*
). - Notas : Quaisquer comentários ou informações adicionais aparecerão aqui.
Os canais instantâneos
Você pode usar a opção info
para obter uma descrição de um pacote de snap
.
Para isso, digitamos o seguinte:
snap info gtk-common-themes
Podemos ver qual canal o pacote está rastreando e a versão do software nos pacotes snap
em cada um dos quatro canais. Na maioria das circunstâncias, você deve permanecer no canal estável.
Um pacote snap
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 alterar o canal que um pacote de snap
rastreia, você pode usar as opções de refresh
e --channel
.
Para isso, digitamos o seguinte:
sudo snap refresh gtk-common-themes --channel=beta
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 as atualizações estão disponíveis para qualquer um dos pacotes snap
instalados em seu computador.
Para isso, digitamos o seguinte:
sudo snap refresh --list
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.
Se uma versão mais recente do software estiver disponível, você poderá usar a opção de refresh
, conforme mostrado abaixo, para forçar manualmente uma atualização:
sudo snap refresh gtk-common-themes
Removendo um pacote de snap
Para desinstalar um pacote snap
, você pode usar a opção de remoção, conforme mostrado abaixo:
sudo snap remover gimp
A folha de dicas instantânea
Usar pacotes snap é bem simples, mas compilamos uma lista de alguns comandos que vão te ajudar:
- Para procurar 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 alterar 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 qualquer 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
Comandos Linux | ||
arquivos | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tipo · renomear · zip · descompactar · montar · umount · instalar · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · converter · rclone · triturar · srm | |
Processos | alias · tela · topo · legal · renice · progresso · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · tempo limite · parede · sim · matar · dormir · sudo · su · tempo · groupadd · usermod · grupos · lshw · desligar · reiniciar · parar · desligar · passwd · lscpu · crontab · data · bg · fg | |
Rede | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
RELACIONADO: Melhores laptops Linux para desenvolvedores e entusiastas