Gerenciando pacotes com o pacman

O pacman é uma das ferramentas mais legais do Arch Linux. Ele é um gerenciador de pacotes capaz de resolver dependências e que trabalha com um formato binário de pacotes. Além disso, o pacman permite que os pacotes sejam facilmente customizados pelos usuários.

Neste post vou tentar mostrar as principais opções do pacman. São elas:

-S (sincronização)

A opção -S do pacman é a responsável pelos diversos tipos de sincronização. Com ela é possível instalar pacotes, baixar uma lista com as últimas versões dos pacotes, atualizar todo o sistema, etc. Combinando a opção -S com outras é possível realizar diversas tarefas como, por exemplo:

Atualizar a lista de pacotes disponíveis (-Sy):

Antes de fazer qualquer operação de busca, instalação e/ou atualização de um pacote é recomendado atualizar a lista de pacotes disponíveis. O comando abaixo faz isso por você:

# pacman -Sy

Tanto a combinação -Sy, quanto todas as outras combinações, podem ser executadas de forma separada. Exemplo:

# pacman -S -y

NOTA: Por ser mais prático eu vou usar as opções combinadas no decorrer deste post.

Buscar um pacote (-Ss):

# pacman -Ss pacote

Exemplo:

# pacman -Ss firefox

Instalar um pacote dos repositórios (-S):

Sabendo que o pacote está disponível em um dos repositórios habilitados, você pode instalá-lo usando:

# pacman -S pacote

NOTA: Em todas as opções você pode passar mais de um pacote como parâmetro.

As vezes existem versões diferentes do pacote em diferentes repositórios. Você pode especificar de qual repositório você quer que o pacman baixe o pacote da seguinte maneira:

# pacman -S repositório/nome-do-pacote

Exemplo:

# pacman -S testing/firefox

Por padrão o pacman baixa o pacote do primeiro repositório onde ele for encontrado. A ordem dos repositórios pode ser definida no arquivo /etc/pacman.conf.

NOTA: Para instalar um pacote local use a opção -U:

# pacman -U pacote.pkg.tar.gz

Atualizar todo o sistema (-Su):

# pacman -Su

É recomendado que você atualize a lista de pacotes antes de atualizar o sistema. Você pode rodar pacman -Sy antes ou fazer tudo ao mesmo tempo. É só combinar todas as opções da seguinte forma:

# pacman -Syu

Forçar a instalaçao de um pacote (-Sf):

# pacman -Sf pacote

Esta opção é útil quando acontece algum conflito de pacotes, mas use-a com cuidado.

Limpar os pacotes antigos do cache (-Sc):

# pacman -Sc

Para apagar todos os arquivos do cache use:

# pacman -Scc

-R (remoção)

A opção -R serve para remover pacotes. Os arquivos pertencentes ao pacote também são removidos e a base de dados de pacotes é atualizada. Os arquivos de configuração são salvos com a extensão .pacsave.

# pacman -R pacote

A opção acima remove o pacote, mas todas as dependências dele continuarão instaladas.

Combinada com outras, a opção -R pode:

Remover um pacote e suas dependência (-Rs):

O comando abaixo remove um pacote e todas as suas dependências que não estão sendo usadas por nenhum outro pacote.

# pacman -Rs pacote

Remover um pacote sem checar suas dependências (-Rd):

Algum dia você precisará remover um pacote sem que o pacman cheque as dependências do mesmo (por causa de um conflito de pacotes, por exemplo). O comando a seguir fará isso por você:

# pacman -Rd pacote

Remover um pacote e todos os seus arquivos de configuração (-Rn):

# pacman -Rn pacote

NOTA: Com esta opção *todos* os arquivos de um determinado pacote serão removidos (inclusive os arquivos de configuração).

Removendo um pacote e todos os outros que precisam dele (-Rc):

# pacman -Rc pacote

Isso vai remover o pacote e todos os outros pacotes que precisam dele de forma recursiva.

NOTA: Eu recomendo desinstalar um pacote combinando as opções -s, -c e -n da seguinte forma:

# pacman -Rscn pacote

-Q (query)

Com a opção -Q é possível, entre outras coisas:

Listar todos os pacotes instalados (-Q):

# pacman -Q

Obter informações de um pacote instalado (-Qi):

A opção -Qi mostra diversas informações sobre o pacote como, por exemplo, versão, descrição, licensa, dependências, data de criação, quem empacotou, etc.

# pacman -Qi pacote

Listar os arquivos contidos em um pacote (-Ql):

# pacman -Ql pacote

Visualizar o “pacote dono” de um determinado arquivo (-Qo):

Esta opção faz o caminho inverso da opção anterior (-Ql). Aqui você descobre a que pacote pertence um determinado arquivo no disco.

# pacman -Qo caminho-do-arquivo

Exemplo:

# pacman -Qo /etc/pacman.conf
/etc/pacman.conf pertence a pacman 3.0.6-2

Listar os pacotes que foram instalados de forma explícita (-Qe):

# pacman -Qe

Listar todos os pacotes orfãos (-Qdt):

O comando acima lista todos os pacotes que foram instalados por algum outro pacote, mas que não são requeridos por mais nenhum outro pacote instalado. Isso pode acontecer quando se remove um pacote, mas não remove as dependências do mesmo.

É isso. Aqui eu só listei as principais opções do pacman, mas existem várias outras. Recomendo que dê uma olhada na manpage dele.

[tags]pacman, archlinux, arch, package manager[/tags]

9 Responses to “Gerenciando pacotes com o pacman”

  1. Pablo Vieira Says:

    Nossa, um guia do pacman muito bem escrito! Algumas das opções eu realmente não conhecia. Gostaria de sugerir a adição de bons aliases para o pacman, que pode tomar como este link ou este link.

    Que tal postá-lo no BR-Linux?

    Novamente, parabéns.

  2. Pablo Vieira Says:

    Correção:
    pode tomar como este link…
    na verdade seria
    que pode tomar como exemplo..

  3. Hugo Doria Says:

    Opa Pablo,

    Primeiramente queria agradecer pelo comentário. Gostei da idéia de postar no Br-Linux. Vou enviar uma sugestão de notícia para lá. Obrigado. ;)

    Adorei a idéia do alias para o pacman. Vou fazer aqui. Muito bom.

    Abraços e obrigado.

  4. N3RD3X Says:

    Parabéns cara, adicionado aos favoritos, conhece uma gui perfeita para o pacman ?

  5. Hugo Doria Says:

    Opa n3rd3x,

    Eu ainda não testei nenhuma gui para o pacman e, por isso, não posso lhe indicar nenhuma.

    Eu sei que já existe um membro do Arch Linux portando ele para o PackageKit. Só não sei a quantas anda o desenvolvimento.

  6. corvolino Says:

    Gostei, ótima dica para quem está chegando e não sabe o que é pacman. :)

  7. Diego Says:

    o Jacman e uma GUI baseada em JAVA!
    Não e la essas coisas mas e bonzinho!

  8. Podcast com o Aaron Griffin (líder do projeto Arch Linux) | Hugo Dória Says:

    [...] podcast foi bem legal e ele falou, entre outras coisas, da história do arch, do pacman, sobre segurança, sobre o AUR, dos planos para a distro e, claro, do projeto em si. Vale a [...]

  9. Hugo Doria Linux, música e pensamentos sem sentido Says:

    [...] Gerenciando pacotes com o pacman [...]

Leave a Reply