Difference between revisions of "Pacman (Português)"

From ArchWiki
Jump to: navigation, search
(Solução de problemas)
(Comandos adicionais)
Line 278: Line 278:
 
  # pacman -Sw ''package_name''
 
  # pacman -Sw ''package_name''
  
Instale um pacote 'local' que não é de um repositório remoto (ex., o pacote é do [[Arch User Repository (Português)]):
+
Instale um pacote 'local' que não é de um repositório remoto (ex., o pacote é do [[Arch User Repository (Português)]]:
  
 
  # pacman -U /path/to/package/package_name-version.pkg.tar.xz
 
  # pacman -U /path/to/package/package_name-version.pkg.tar.xz

Revision as of 02:57, 17 August 2013

Sumário help replacing me
Pacman é o gerenciador de pacotes do Arch Linux. Gerenciadores de pacotes são usados para instalar, atualizar e remover programas. Este artigo aborda o uso básico com dicas e solução de problemas.
Visão Geral
Os Pacotes no Arch Linux são construídos usando o makepkg e um script de construção personalizado para cada pacote (conhecido como PKGBUILD). Uma vez empacotado, o programa pode ser instalado e gerenciado com o pacman. PKGBUILDs para software nos repositórios oficiais são disponíves na árvore do ABS; mais de milhares estão disponíveis no (não suportado) Arch User Repository.
Relacionado
Downgrading Packages
Improve Pacman Performance
Pacman GUI Frontends
Pacman Rosetta
Pacman Tips
Pacman package signing
FAQ#Package Management
pacman-key
Pacnew and Pacsave Files
Recursos
libalpm(3) Manual Page
pacman(8) Manual Page
pacman.conf(5) Manual Page
repo-add(8) Manual Page

O gerenciador de pacote pacman é uma das grandes vantagens do Arch Linux. Combina um simples pacote no formato binário, com um fácil uso de sistema de compilação. A meta do pacman é tornar o mais fácil possivel gerenciar pacotes, sejam eles dos oficiais repositórios Arch ou das próprias compilações do usuário.

Pacman mantém o sistema atualizado, listas de pacotes de sincronização com o servidor mestre. Este modelo servidor/cliente também permite o usuário baixar/instalar pacotes com um simples comando, completo com todas as dependências requeridas.

Pacman é escrito na linguagem de programação C e usa o formato de pacote .pkg.tar.xz.

Dica: O oficial pacote pacman também contém outras ferramentas úteis, tais como o makepkg, pactree, vercmp e mais: executa pacman -Ql pacman | grep bin para ver uma lista completa.

Configuração

Os ajustes do Pacman estão localizados em /etc/pacman.conf. Este é o local onde o usuário configura o programa para funcionar da forma desejada. Informações detalhadas sobre o arquivo de configuração pode ser encontrada em man pacman.conf.

Opções gerais

Opções gerais estão na seção [options]. Leia a página de manual ou olhe no padrão pacman.conf para obter informações sobre o que pode ser feito aqui.

Pular pacotes para não serem atualizados

Para pular a atualização de um pacote específico, faça:

IgnorePkg=linux

Para vários pacotes use uma lista separada por espaço, ou use adicionais linhas IgnorePkg.

Pular um grupos de pacotes para não serem atualizados

Tal como acontece com os pacotes, pular um grupo de pacote inteiro também é possível:

IgnoreGroup=gnome

Pular arquivos para não serem instalados no sistema

Para pular sempre a instalação de lista de diretórios sob NoExtract. Por exemplo, para evitar a instalação de units systemd use:

NoExtract=usr/lib/systemd/system/*

Repositórios

A seção define quais repositórios usar, como referido no /etc/pacman.conf. Podem ser mencionados aqui diretamente ou incluídos de outro arquivo (como /etc/pacman.d/mirrorlist), tornando-se assim necessário manter apenas uma lista. Veja aqui para configuração de espelho.

/etc/pacman.conf
#[testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

#[multilib]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

Cuidados devem ser tomados ao usar o repositório [testing]. Ele está em desenvolvimento ativo e a atualização pode fazer que alguns pacotes parem de funcionar. As pessoas que usam o repositório [testing] são encorajadas a se increver em arch-dev-public mailing list para obter informações atualizadas.}}

Segurança de pacotes

Pacman suporta 4 assinaturas de pacotes, que adiciona um nível extra de segurança para os pacotes. A configuração padrão, SigLevel = Required DatabaseOptional, habilita a verificação de assinaturas para todos os pacotes em um nível global: este pode ser substituido por linhas por repositório SigLevel, como mostrado acima. Para mais detalhes sobre pacote de assinatura e verificação de assinatura, dê uma olhada em pacman-key.

Uso

O que se segue é apenas uma pequena amostra das operações que o pacman pode executar. Para ler mais exemplos, consulte man pacman. Para uma introdução, veja pacman - An Introduction.

Instalando Pacotes

Instalando Pacotes especificos

Para instalar um único pacote ou lista de pacotes (incluindo dependências), execute o seguinte comando:

# pacman -S package_name1 package_name2 ...

Às vezes, há várias versões de um pacote nos diferentes repositórios, por exemplo [extra] e [testing]. Para instalar a versão anterior, o repositṕorio deve ser definido na frente:

# pacman -S extra/package_name

Instalando grupos de pacotes

Alguns pacotes pertencem a um grupo de pacotes que podem ser instalados simultaneamente. Por exemplo, o comando:

# pacman -S gnome

este comando solicitará que você selecione os pacotes do grupo gnome que você deseja instalar.

Às vezes, um grupo de pacote conterá uma grande quantidade de pacotes, e pode haver só alguns que você quer ou não instalar. Em vez de digitar todos os números, exceto aqueles que você não quer, pode ser mais conveniente selecionar ou excluir pacotes ou intervalos de pacotes com a seguinte sintaxe:

Digite uma seleção (padrão=todos): 1-10 15

irá selecionar pacotes 1 até 10 e 15 para a instalação, ou:

Digite uma seleção (padrão=todos):: ^5-8 ^2

irá selecionar todos os pacotes, exceto 5 até 8 e 2 para a instalação.

Para ver quais pacotes pertencem ao grupo gnome, execute:

# pacman -Sg gnome

Também visite https://www.archlinux.org/groups/ para saber quais os grupos de pacotes disponíveis.

Nota: Se um pacote na lista já está instalado no sistema, ele será reinstalado mesmo se já estiver atualizado. Este comportamento pode ser substituído com a opção --needed.
Dica: Ao instalar os pacotes, não atualiza a lista de pacotes sem atualização do sistema (ex. pacman -Sy package_name), isso pode ocasinar erros de dependêcias. Veja #Partial upgrades are unsupported e https://bbs.archlinux.org/viewtopic.php?id=89328.

Removendo pacotes

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

# pacman -R package_name

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

# pacman -Rs package_name

Para remover um pacote, suas dependências e todos os pacotes que dependem deste pacote:

Dica: Esta operação é recursiva, e deve ser usada com cuidado, pois pode remover muitos pacotes potencialmente necessários.
# pacman -Rsc package_name

Para remover um pacote, o qual é exigido por outro pacote, sem remover o pacote dependente:

# pacman -Rdd package_name

O pacman salva arquivos de configuração importantes ao remover certos aplicativos e os nomes com a extensão: .pacsave. Para prevenir a criação desses arquivos de backup use a opção -n:

# pacman -Rn package_name
Nota: Pacman não removerá as configurações que o próprio aplicativo cria (por exemplo, "dotfiles" na pasta home).

Atualizando pacotes

Pacman pode atualizar todos os pacotes no sistema com apenas um comando. Isso pode demorar um pouco dependendo de como anda a atualização do sistema. Este comando pode sincronizar as bases de dados do repositório e atualizar os pacotes do sistema (excluindo pacotes "locais" que não estão nos repositórios configurados):

# pacman -Syu
Dica: Em vez de logo que as atualizações estiverem disponíveis, os usuários devem reconhecer que, devido à natureza Arch's rolling release, uma atualização pode ter consequências imprevisíveis. Isso significa que não é prudente atualizar se, por exemplo, tem alguma tarefa importante para fazer. Preferencialmente, atualize durante o tempo livre e esteja preparado para lidar com quaisquer problemas que possam surgir.

Pacman é uma ferramenta de gerenciamento de pacotes poderosa, mas não tenta lidar com todos os casos. Leia The Arch Way (Português) se estiver confuso. Os usuários devem estar atentos e ter a responsabilidade pela manutenção do seu próprio sistema. Ao realizar uma atualização do sistema, é essencial que os usuários leiam todas as saídas de informações do pacman e usem o bom senso. Se um arquivo de configuração do modificado pelo usuário precisa ser atualizado para uma nova versão de um pacote, um arquivo .pacnew será criado para evitar a substituição de configurações alteradas pelo usuário. Pacman pedirá ao usuário para juntá-las. Esses arquivos requerem intervenção manual do usuário e é uma boa prática para lidar com eles logo após cada atualização ou remoção do pacote. Veja Pacnew e arquivos Pacsave para mais informações.

Dica: Lembre-se que a saída do pacman é registrada no /var/log/pacman.log.

Antes de atualizar, é aconselhável visitar a página Arch Linux Brasil para verificar as últimas notícias (alternativamente assinar o [1], arco-announce mailing list, ou seguir @ archlinux no Twitter), quando atualizações exigem a intervenção do usuário (mais do que isso pode ser tratada simplesmente seguindo as instruções dadas pelo pacman), uma mensagem de notícias no site será criada.

Se alguém encontrar problemas que não podem ser resolvidos por estas instruções, certifique-se de pesquisar no fórum. É provável que os outros já tenham encontrado o mesmo problema e publicaram as instruções para resolvê-lo.

Consultando bancos de dados do pacote

Pacman consulta o banco de dados do pacote local com a flag -Q, veja:

$ pacman -Q --help

e consulte o bancos de dados de sincronização com a flag -S, veja:

$ pacman -S --help

Pacman pode pesquisar por pacotes no banco de dados, pesquisando nomes e descrições dos pacotes:

$ pacman -Ss string1 string2 ...

Para procurar os pacotes já instalados:

$ pacman -Qs string1 string2 ...

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

$ pacman -Si package_name

Para os pacotes instalados localmente:

$ pacman -Qi package_name

Inserindo duas flags -i também exibirá a lista de arquivos de backup e seus estados de alterações:

$ pacman -Qii package_name

Para obter uma lista dos arquivos instalados por um pacote

$ pacman -Ql package_name

Para pacotes não instalados, use pkgfile.

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

$ pacman -Qo /path/to/file_name

Para listar todos os pacotes não são exigidos como dependências (órfãos):

$ pacman -Qdt

Para listar a árvore de dependência de um pacote:

$ pactree package_name

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

$ whoneeds package_name

Comandos adicionais

Atualizar o sistema e instalar uma lista de pacotes:

# pacman -Syu package_name1 package_name2 ...

Baixe um pacote sem instalá-lo:

# pacman -Sw package_name

Instale um pacote 'local' que não é de um repositório remoto (ex., o pacote é do Arch User Repository (Português):

# pacman -U /path/to/package/package_name-version.pkg.tar.xz
Dica: Para manter uma cópia do pacote local no cache do pacman, use:
# pacman -U file://path/to/package/package_name-version.pkg.tar.xz

Instalar um pacote 'remoto' (não de um repositório indicado nos arquivos de configuração do pacman):

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

Limpe o cache de pacotes que não estão instalados (/var/cache/pacman/pkg):

Dica: Só faça isso se tem certeza que os pacotes instalados são estáveis ​​e que o downgrade não será necessário, já que removerá todas as versões anteriores da pasta cache, deixando apenas as versões dos pacotes que estão instalados atualmente. Tendo versões mais antigas de pacote vem a calhar no caso de uma futura atualização provocar um erro.
# pacman -Sc

Limpe o cache do pacote inteiro:

Dica: Este limpa todo o cache de pacote. Fazer isso é considerado uma má prática, que evita a possibilidade de downgrade de alguma coisa diretamente da pasta cache. Os usuários serão forçados a ter que usar uma fonte alternativa de pacotes obsoletos tais como o Arch Rollback Machine.
# pacman -Scc
Dica: Como alternativa tanto para o -Sc e -Scc, considere usar paccache do pacman. Isso oferece mais controle sobre o que e quantos pacotes são apagados. Execute paccache -h para obter instruções.

Atualizações parciais não são suportadas

Arch é um rolling release, e novas versões de bibliotecas serão colocadas nos repositórios. Os desenvolvedores e usuários confiáveis reconstruirão todos os pacotes nos repositórios que precisam ser reconstruídos com as bibliotecas. Se o sistema tem pacotes instalados localmente (tal como pacotes [[Arch User Repository (Português)]), os usuários deverão recontruí-los quando suas dependências receberem uma colisão soname.

Isso significa que as atualizações parciais são não suportadas. Não use pacman -Sy package ou equivalente como pacman -Sy e depois pacman -S package. Sempre atualize antes de instalar um pacote -- especialmente se o pacman atualizou as sincronização de repositórios. Tenha muito cuidado ao usar IgnorePkg e IgnoreGroup, pelo mesmo motivo.

Se um cenário de atualização parcial foi criado e os binários estão quebrados porque não conseguem encontrar as bibliotecas que estão ligadas, não "conserte" o problema simplesmente pelo symlinking. Bibliotecas recebem colisões soname quando elas não são compatíveis. Um simples pacman -Syu para um espelho devidamente sincronizado resolverá o problema, desde que pacman não esteja quebrado.

Solução de problemas

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Veja também