Primeiros passos com os comandos Pacman em distribuições Linux baseadas em Arch

29 de outubro de 2020

Este guia para iniciantes mostra o que você pode fazer com os comandos pacman no Linux, como usá-los para encontrar novos pacotes, instalar e atualizar novos pacotes e limpar seu sistema.

O gerenciador de pacotes pacman é uma das principais diferenças entre Arch Linux e outras distribuições importantes como Red Hat e Ubuntu/Debian. Ele combina um formato de pacote binário simples com um [sistema de compilação] fácil de usar (https://wiki.archlinux.org/index.php/Arch_Build_System). O objetivo do pacman é gerenciar facilmente os pacotes, seja a partir dos repositórios oficiais ou das próprias compilações do usuário.

Se você já usou distribuições baseadas em Ubuntu ou Debian, você pode ter usado os comandos apt-get ou apt. Pacman é o equivalente no Arch Linux. Se você acabou de instalar o Arch Linux, uma das primeiras coisas a fazer após a instalação do Arch Linux é aprender a usar os comandos pacman.

Neste guia para iniciantes, explicarei alguns dos usos essenciais do comando pacmand que você deve saber para gerenciar seu sistema baseado em Arch.

Comandos essenciais do pacman que os usuários do Arch Linux devem saber

Essential Pacman Commands Como outros gerenciadores de pacotes, o pacman pode sincronizar listas de pacotes com os repositórios de software para permitir que o usuário baixe e instale pacotes com um simples comando resolvendo todas as dependências necessárias .

Instalar pacotes com pacman

Você pode instalar um único pacote ou vários pacotes usando o comando pacman desta maneira:

Comandos para usar no terminal

pacman -S _package_name1_ _package_name2_ ...

Sudo Pacman S

Instalando um pacote O -S significa sincronização. Isso significa que o pacman primeiro sincroniza

O banco de dados pacman categoriza os pacotes instalados em dois grupos de acordo com o motivo pelo qual foram instalados:

  • explicitamente instalado: os pacotes que foram instalados por um comando genérico pacman -S ou -U
  • dependências: os pacotes que foram instalados implicitamente porque requeridos por outro pacote que foi instalado explicitamente.

Remover um pacote instalado

Para remover um único pacote, deixando todas as suas dependências instaladas:

Comandos para usar no terminal

pacman -R package_name_

Sudo Pacman R

Removendo um pacote Para remover um pacote e suas dependências que não são exigidas por nenhum outro pacote instalado:

Comandos para usar no terminal

pacman -Rs _package_name_

Para remover dependências que não são mais necessárias. Por exemplo, o pacote que precisava das dependências foi removido.

Comandos para usar no terminal

pacman -Qdtq | pacman -Rs -

Pacotes de atualização

Pacman oferece uma maneira fácil de atualizar o Arch Linux. Você pode atualizar todos os pacotes instalados com apenas um comando. Isso pode demorar um pouco, dependendo de como o sistema está atualizado.

O comando a seguir sincroniza os bancos de dados do repositório e atualiza os pacotes do sistema, excluindo os pacotes "locais" que não estão nos repositórios configurados:

Comandos para usar no terminal

pacman -Syu

  • S significa sincronização
  • y é para atualização (local
  • u é para atualização do sistema

Basicamente, está dizendo que sincronizar com o repositório central (banco de dados do pacote mestre), atualizar a cópia local do banco de dados do pacote mestre e, em seguida, realizar a atualização do sistema (atualizando todos os pacotes que têm uma versão mais recente disponível).

Sudo Pacman Syu

Atualização do sistema Atenção!

Se você for um usuário do Arch Linux antes de atualizar, é aconselhável visitar a página inicial do Arch Linux para verificar as últimas notícias sobre atualizações fora do comum. Se a intervenção manual for necessária, uma postagem de notícias apropriada será feita. Alternativamente, você pode se inscrever no feed RSS ou na lista de discussão arch-announce.

Também esteja atento para olhar o [fórum] apropriado (https://bbs.archlinux.org/) antes de atualizar o software fundamental (como o kernel, xorg, systemd ou glibc), para qualquer problema relatado.

Upgrades parciais não são suportados em uma distribuição de lançamento contínuo como Arch e Manjaro. Isso significa que quando novas versões de biblioteca são enviadas para os repositórios, todos os pacotes nos repositórios precisam ser reconstruídos nas bibliotecas. Por exemplo, se dois pacotes dependem da mesma biblioteca, atualizar apenas um pacote pode quebrar o outro pacote que depende de uma versão mais antiga da biblioteca.

Use o pacman para procurar pacotes

Pacman consulta o banco de dados de pacote local com o sinalizador -Q, o banco de dados de sincronização com o sinalizador -S e o banco de dados de arquivos com o sinalizador -F.

Pacman pode pesquisar pacotes no banco de dados, tanto nos nomes quanto nas descrições dos pacotes:

Comandos para usar no terminal

pacman -Ss _string1_ _string2_ ...

Sudo Pacman Ss

Pesquisando um pacote Para pesquisar pacotes já instalados:

Comandos para usar no terminal

pacman -Qs _string1_ _string2_ ...

Para pesquisar nomes de arquivo de pacote em pacotes remotos:

Comandos para usar no terminal

pacman -F _string1_ _string2_ ...

Para visualizar a árvore de dependências de um pacote:

Comandos para usar no terminal

pactree _package_naenter code hereme_

Limpando o cache do pacote

O Pacman armazena seus pacotes baixados em/var/cache/pacman/pkg/e não remove as versões antigas ou desinstaladas automaticamente. Isso tem algumas vantagens:

  1. Permite downgrade um pacote sem a necessidade de recuperar a versão anterior através de outras fontes.
  2. Um pacote que foi desinstalado pode ser facilmente reinstalado diretamente da pasta de cache.

No entanto, é necessário limpar o cache periodicamente para evitar que a pasta aumente de tamanho.

O script paccache (8), fornecido no pacote pacman-contrib, exclui todas as versões em cache de pacotes instalados e desinstalados, exceto os 3 mais recentes, por padrão:

Comandos para usar no terminal

paccache -r

Sudo Paccache R

Limpar cache Para remover todos os pacotes em cache que não estão instalados no momento e o banco de dados de sincronização não usado, execute:

Comandos para usar no terminal

pacman -Sc

Para remover todos os arquivos do cache, use a opção limpa duas vezes, esta é a abordagem mais agressiva e não deixará nada na pasta de cache:

Comandos para usar no terminal

pacman -Scc

Instalação de pacotes locais ou de terceiros

Instale um pacote "local" que não seja de um repositório remoto:

Comandos para usar no terminal

pacman -U _/path/to/package/package_name-version.pkg.tar.xz_

Instale um pacote 'remoto', não contido em um repositório oficial:

Comandos para usar no terminal

pacman -U http://www.example.com/repo/example.pkg.tar.xz

Bônus: solução de erros comuns com pacman

Aqui estão alguns erros comuns que você pode encontrar ao gerenciar pacotes com o pacman.

Falha ao confirmar transação (arquivos conflitantes)

Se você vir o seguinte erro:

Comandos para usar no terminal

error: could not prepare transaction error: failed to commit transaction (conflicting files) package: /path/to/file exists in filesystem Errors occurred, no packages were upgraded.

Isso está acontecendo porque o pacman detectou um conflito de arquivos e não os sobrescreverá para você.

Uma maneira segura de resolver isso é primeiro verificar se outro pacote possui o arquivo (pacman -Qo /caminho/para/arquivo ). Se o arquivo pertencer a outro pacote, envie um relatório de bug. Se o arquivo não pertencer a outro pacote, renomeie o arquivo que "existe no sistema de arquivos" e emita novamente o comando de atualização. Se tudo correr bem, o arquivo pode ser removido.

Em vez de renomear manualmente e posteriormente remover todos os arquivos que pertencem ao pacote em questão, você pode executar explicitamente pacman -S –overwrite glob package para forçar o pacman a sobrescrever arquivos que correspondam a glob .

Falha ao confirmar a transação (pacote inválido ou corrompido)

Procure por arquivos .part (pacotes parcialmente baixados) em/var/cache/pacman/pkg/e remova-os. Geralmente, é causado pelo uso de um XferCommand personalizado no pacman.conf.

Falha ao iniciar a transação (não foi possível bloquear o banco de dados)

Quando o pacman está prestes a alterar o banco de dados do pacote, por exemplo, instalando um pacote, ele cria um arquivo de bloqueio em /var/lib/pacman/db.lck. Isso evita que outra instância do pacman tente alterar o banco de dados do pacote ao mesmo tempo.

Se o pacman for interrompido durante a alteração do banco de dados, este arquivo de bloqueio obsoleto pode permanecer. Se você tiver certeza de que nenhuma instância do pacman está em execução, exclua o arquivo de bloqueio.

Verifique se um processo está mantendo o arquivo de bloqueio:

Comandos para usar no terminal

lsof /var/lib/pacman/db.lck

Se o comando acima não retornar nada, você pode remover o arquivo de bloqueio:

Comandos para usar no terminal

rm /var/lib/pacman/db.lck

Se você encontrar o PID do processo que contém o arquivo de bloqueio com a saída do comando lsof, mate-o primeiro e depois remova o arquivo de bloqueio.

Espero que goste do meu humilde esforço para explicar os comandos básicos do pacman. Deixe seus comentários abaixo e não se esqueça de se inscrever em nossas redes sociais. Fique seguro!

Confira também a versão original desse post em inglês
Esse post foi originalmente escrito por Dimitrios Savvopoulos e publicado no site itsfoss.com. Tradução sujeita a revisão.

Getting Started With Pacman Commands in Arch-based Linux Distributions

Propaganda
Blog Comments powered by Disqus.
Propaganda