Top Qs
Linha do tempo
Chat
Contexto

Pacman (gerenciador de pacotes)

gerenciador de pacotes em sistema baseados em Arch Da Wikipédia, a enciclopédia livre

Pacman (gerenciador de pacotes)
Remove ads

Pacman (de Package Manager) é um software gerenciador de pacotes criado por Judd Vinet para o Arch Linux, e é considerado uma de suas principais funcionalidades. O objetivo do pacman é tornar possível o fácil gerenciamento de pacotes tanto dos repositórios oficiais quanto do AUR.

Factos rápidos

O pacman mantém o sistema atualizado sincronizando todos os pacotes com aqueles que estão atualmente nos servidores. Teoricamente, basta um simples comando para atualizar todos os pacotes (e consequentemente todo o sistema) para a última versão disponível.[4]

O programa foi escrito em C e usa o formato .pkg.tar.xz para os pacotes.

Remove ads

Configuração

Para configurar o Pacman você só precisa editar o arquivo /etc/pacman.conf, onde você pode adicionar repositórios e definir várias opções, e até criar seus próprios repositórios.

Pacotes e sistema de compilação

Os pacotes do Pacman são arquivos tar compactados, que contêm metadados e uma estrutura de diretórios com os arquivos. Os pacotes são construídos com o makepkg, usando scripts do Bash, conhecidos como PKGBUILDs.[5] O seguinte é um PKGBUILD para o pacote patch, incluído na documentação do Pacman como exemplo:[6]

pkgname=patch
pkgver=2.5.4
pkgrel=3
pkgdesc="A utility to apply patch files to original sources"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/patch/patch.html"
license=('GPL')
groups=('base-devel')
depends=('glibc' 'ed')
source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('ee5ae84d115f051d87fcaaef3b4ae782')

build() {
  cd "$srcdir"/$pkgname-$pkgver
  ./configure --prefix=/usr
  make
}

package() {
  cd "$srcdir"/$pkgname-$pkgver
  make prefix="$pkgdir"/usr install
}
Remove ads

Comandos

Resumir
Perspectiva

Para ver a lista completa de comandos do Pacman, use pacman --help.

Atualizando pacotes

Atualizar o sistema:

$ sudo pacman -Syu

Use a opção -Syyu para forçar um renovação do banco de dados, mesmo se este estiver atualizado; use -Syuw para apenas baixar os pacotes sem instalá-los, e para instalá-los mais tarde, use a opção -Su.

Instalando e removendo pacotes

Para reinstalar todos os pacotes nativos:

$ sudo pacman -S $(pacman -Qnq)

Backup, criação de um arquivo contendo os nomes dos pacotes então instalados explicitamente (do repositório oficial):

$ pacman -Qqen > "/pasta de destino/nome-do-arquivo.txt"

Restaurar backup, através do arquivo criado com o comando acima:

$ sudo pacman -S --needed $(cat "/pasta de destino/nome-do-arquivo.txt")

Para remover os pacotes órfãos (dependências não usadas):

$ sudo pacman -Rsn $(pacman -Qtdq)

A opção integrada para remover todos os pacotes em cache que não estão atualmente instalados é:

$ sudo pacman -Sc

Aviso: Só faça isso se tiver certeza de que os pacotes instalados estão estáveis e que um rebaixamento (downgrade) não será necessário, uma vez que irá remover todas as versões antigas da pasta cache, deixando para trás apenas as versões dos pacotes que estão instalados atualmente. Tendo versões mais antigas dos pacotes vem a calhar no caso de futuros problemas, resultante de atualização em um sistema quebrado, e se eles (pacotes) são removidos do cache a única maneira de recuperá-los é através de uma fonte alternativa de pacotes obsoletos, como o Arch Linux Archive.

Também é possível esvaziar completamente a pasta cache com o comando: pacman -Scc, mas fazê-lo é considerado uma má prática, como, além do acima explicado, também impede de reinstalar um pacote diretamente da pasta de cache em caso de necessidade, forçando o re-download (baixar novamente). Você nunca deve usá-lo a menos que haja uma necessidade "desesperada" de mais espaço em disco.

Baixar um pacote sem instalá-lo:

$ sudo pacman -Sw pacote_nome

Instale um pacote local que não é de um repositório remoto (por exemplo, o pacote é a partir do AUR):

$ sudo pacman -U "/local de destino/pacote_nome-versao.pkg.tar.xz"

Aviso: Tome cuidado ao usar a opção --overwrite, pois pode causar problemas graves se utilizada indevidamente. É altamente recomendável usar esta opção somente quando há notícia no site oficial do Arch Linux instruindo o usuário a fazê-lo.

Consultar bancos de dados de pacote

Pacman consulta o banco de dados de pacotes local com a opção -Q; ver:

$ pacman -Q --help

e consulta as bases de dados de sincronização com a opção -S; ver:

$ pacman -S --help

Pacman pode procurar por pacotes no banco de dados, em busca tanto em nomes e descrições dos pacotes:

$ pacman -Ss string1 string2 ...

Para procurar os pacotes já instalados:

$ pacman -Qs string1 string2 ...

Para exibir informações abrangentes sobre um determinado pacote:

$ pacman -Si pacote_nome

Para os pacotes instalados localmente:

$ pacman -Qi pacote_nome

Passando a opção -ii também irá exibir a lista de arquivos de backup e seus estados de modificação:

$ pacman -Qii pacote_nome

Para obter uma lista dos arquivos instalados por um pacote:

$ pacman -Ql pacote_nome

Para os pacotes não instalados, utilize pkgfile.

Para verificar a presença dos arquivos instalados por um pacote:

$ pacman -Qk pacote_nome

Passando a opção -kk irá executar uma verificação mais aprofundada.

Pode-se também consultar o banco de dados para saber a qual pacote um arquivo no sistema de arquivos pertence:

$ pacman -Qo "/pasta de destino/nome_do_arquivo"

Para listar todos os pacotes que já não necessita como dependências (órfãos):

$ pacman -Qdt

Para listar todos os pacotes instalados de forma explícita e não necessários como dependências:

$ pacman -Qet

Para listar uma árvore de dependências de um pacote:

$ pactree pacote_nome

Para listar todos os pacotes, dependendo um instalado pacote, use whoneeds de pkgtools:

$ whoneeds pacote_nome

ou a bandeira reversa para pactree:

$ pactree -r pacote_nome

Comandos adicionais

O gerenciador de pacotes pacman também contém outras ferramentas úteis, como makepkg, pactree, vercmp, e checkupdates. Execute:

$ pacman -Ql pacman | grep /usr/bin/

para ver a lista completa.

Ou:

$ pacman -Ql pacman | awk -F"[/ ]" '/\/usr\/bin/ {print $5}'

Solução de problemas

Se pacman é interrompido durante a mudança do banco de dados, este arquivo de bloqueio pode ficar obsoleto. Se tiver certeza de que não há instâncias do pacman rodando, então exclua o arquivo de bloqueio:

$ sudo rm /var/lib/pacman/db.lck
Remove ads

Distribuições Linux que usam o Pacman

Ver também

Referências

  1. «pacman» (em inglês). The official pacman repository. Consultado em 5 de junho de 2023
  2. «NEWS». pacman - The official pacman repository. Consultado em 5 de junho de 2023
  3. «Copyright». Pacman Home Page. Consultado em 5 de junho de 2023
  4. «Atualizando pacotes». ArchWiki. Consultado em 5 de junho de 2023
  5. «makepkg(8) Manual Page». Consultado em 5 de junho de 2023
  6. «PKGBUILD(5) Manual Page». Consultado em 5 de junho de 2023
Remove ads

Ligações externas

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads