O zypper é o gestor de pacotes oficial em todos os projetos desenvolvidos pela SUSE, que incluem os projetos openSUSE Tumbleweed e Leap, passando pelo SUSE Enterprise Desktop e por vários outros produtos focados em servidores e outros nichos, como o MicroOS.
Neste artigo vamos abordar seus principais conceitos e alguns comandos práticos para você extrair a melhor experiência possível desta ferramenta de linha de comando.
Afinal o que é ZYpp, Zypper e YaST?
Atualmente na versão 16.22.7 o ZYpp ou libzypp é um gerenciador de pacotes de código aberto usado para instalar, atualizar, remover e pesquisar pacotes de software no formato RPM — além de também gerenciar os repositórios do sistema. Sua versão 1.0 foi apresentada em meados de 2008 com o openSUSE 11.1, mas já estava em testes desde a versão 10.2 da distro, lançada em 2006.
Focaremos nossos exemplos deste tutorial no zypper que é a interface de linha de comando do ZYpp, enquanto o YaST que cuida de implementar sua versão gráfica veremos em um conteúdo futuro. Uma curiosidade sobre o ZYpp é que ele também é usado em outros sistemas operacionais fora do ecossistema SUSE, incluindo o MeeGo, o Sailfish OS e o Tizen.
Como usar o zypper corretamente
Antes de começar a se aventurar na administração do sistema, recomendo que você invista algum tempo entendendo como funciona a estrutura dos comandos do zypper. Para aprender mais sobre todas as funções disponíveis no zypper, recomendo que você faça alguns testes com o comando “zypper help”, ele lista e dá dicas de uso para todos os recursos disponíveis.
E caso você queria ver detalhes sobre uma função específica, você pode usar o comando “zypper help <commando>”, por exemplo: zypper help install.
Principais comandos do Zypper
Um ponto que gostei bastante no zypper é que a ferramenta é fácil de entender, oferecendo versões longas e curtas do mesmo comando. Essa flexibilidade ajuda a quebrar algumas barreiras da curva de aprendizado inicial. Vamos conferir abaixo uma lista dos comandos básicos para o uso cotidiano do zypper, separados em categorias para facilitar o entendimento.
# Atualizar o índice de todos os repositórios ativos
sudo zypper refresh
sudo zypper ref
# Listar todas as atualizações disponíveis
zypper list-updates
zypper lu
# Pesquisar por pacotes nos repositórios ativos.
zypper search
zypper se
# Instalar o pacote especificado, permite a instalação de vários pacotes simultaneamente.
sudo zypper install
sudo zypper in
# Remover o pacote especificado, permite a remoção de vários pacotes simultaneamente.
sudo zypper remove
sudo zypper rm
Os dois comandos abaixo instalam as atualizações disponíveis nos repositórios ativos, porém, o comando verify possui uma característica mais associada com a manutenção da integridade da instalação do sistema.
# Atualizar os pacotes instalados para as versões mais recentes disponíveis nos repositórios
sudo zypper update
sudo zypper up
# Verificar a integridade das dependências dos pacotes do sistema.
sudo zypper verify
sudo zypper ve
Caso você precise impedir que um programa seja atualizado com o restante do sistema, é possível travar pacotes individualmente. É muito importante usar este recurso com cuidado, porque pode gerar inconsistências no gerenciamento de dependências.
# Adicionar uma trava ao pacote indicado, impedindo mudanças em seu status.
sudo zypper addlock
sudo zypper al
# Remover a trava dos pacotes especificados.
sudo zypper removelock
sudo zypper rl
# Listar todos os pacotes com travas ativas.
sudo zypper lock
sudo zypper ll
Seguem alguns comandos avançados que podem ser úteis em situações específicas, como fazer atualizações completas do sistema ou aplicar patches em programas gerenciados.
# Encontrar e instalar pacotes novos recomendados para seu sistema.
sudo zypper install-new-recommends
sudo zypper inr
# Utilizado para atualizar o “produto” para sua versão mais recente.
sudo zypper dist-upgrade
sudo zypper dup
# Mostrar se existem correções importantes para o seu sistema e a quantidade delas.
sudo zypper patch-check
sudo zypper pchk
Comandos para gerenciar repositórios
O ecossistema de pacotes das distros do projeto openSUSE é gigantesco, contando com vários repositórios oficiais, você pode consultar a lista completa de repositórios no site oficial do projeto.
# Listar todos os repositórios, incluindo informações sobre prioridade de instalação.
zypper repos
zypper lr
# Adicionar o repositório ao sistema
sudo zypper addrepo
sudo zypper ar
# Remover o repositório especificado
sudo zypper removerepo
sudo zypper rr
# Limpar os caches dos repositórios do sistema
sudo zypper clean
sudo zypper cc
Além de incontáveis repositórios mantidos pela comunidade, também existem repositórios de terceiros como o Packman, que provê centenas de pacotes relacionados com multimídia, codecs e jogos.
Uma maneira muito interessante de instalar programas nas distros baseadas em openSUSE é usando os “One-Click-Installers”, que é um serviço online que permite instalar programas específicos ou combinações de pacotes por meio de uma interface totalmente web, este recurso é compatível apenas com o Mozilla Firefox.
Vale a pena ressaltar que utilizar repositórios de terceiros pode adicionar instabilidade e até mesmo quebrar totalmente o sistema, lembra dos PPAs do Ubuntu? Então, fica aqui o aviso para que você faça backup do seu sistema e procure analisar bem os repositórios antes de ativá-los no seu computador.
Você pode personalizar a configuração do ZYpp
O principal arquivo de configuração para controlar o funcionamento do ZYpp é o “/etc/zypp/zypp.conf” que permite ajustar diversos comportamentos importantes relacionados com o download e disponibilidade de pacotes.
Uma reclamação bastante comum em relação as distros da SUSE está relacionada com a demora para baixar pacotes, um pequeno ajuste na configuração, pode ajudar a amenizar este problema. Por padrão, o ZYpp utiliza até 5 conexões simultâneas para efetuar o download de pacotes, dependendo da velocidade da sua internet, aumentar esse valor para 10 pode trazer ganhos visíveis no tempo de download.
download.max_concurrent_connections = 10
Em conexões lentas, limitar a velocidade de conexão pode melhorar sua experiência de uso, evitando que a navegação na internet fique muita lenta durante o processo de download de pacotes. Para limitar a banda utilizada pelo ZYpp, ajuste o parâmetro abaixo de acordo com suas necessidades usando o formato de bytes por segundo, onde 1 megabit por segundo equivale 125000 bytes por segundo.
download.max_download_speed = 0 # velocidade máxima de download
Características como cor das saídas e algumas opções de resolução de dependências podem ser personalizadas nas configurações do zypper localizadas em “/etc/zypp/zypper.conf”. No meu uso normal, ainda não foi necessário fazer nenhuma customização nestas opções.
E finalizando, um recurso muito poderoso do YaST são os “patterns” ou padrões, que permitem que você instale seleções complexas de pacotes. Podendo, por exemplo, fazer a instalação de um ambiente KDE completo de forma muito simples, mas, iremos abordar o YaST e seus super-poderes em um artigo futuro.
Espero que estas dicas possam te ajudar a aproveitar os recursos destas poderosas ferramentas, mantendo seu sistema com as atualizações em dia e totalmente estável!