pacman/Tips and tricks (Português) - ArchWiki

# pacman/Tips and tricks (Português)

From ArchWiki
< Pacman

Artigos relacionados

- Mirrors
- Criando pacotes

Para métodos gerais para melhorar a flexibilidade das dicas fornecidas ou do pacman em si, veja Core utilities e Bash.

## Manutenção

Nota: Em vez de usar comm (que requer entradas ordenadas com sort) na seção abaixo, você também pode usar `grep -Fxf` ou `grep -Fxvf`.

Veja também Manutenção do sistema.

### Listando pacotes

Você pode querer obter a lista de pacotes instalados com sua versão, o que é útil ao relatar erros ou discutir pacotes instalados.

- Listar todos os pacotes instalados explicitamente: `pacman -Qe`.
- Listar todos pacotes nativos (ou seja, presente na base de dados de sincronização) instalados explicitamente que não são dependências diretas ou opcional: `pacman -Qent`.
- Listar todos os pacotes externos (geralmente baixados e instalados manualmente): `pacman -Qm`.
- Listar todos os pacotes nativos (instalados a partir de base(s) de dados de sincronização): `pacman -Qn`.
- Listar pacotes por expressão regular: `pacman -Qs regex`.
- Listar pacotes por expressão regular com formato de saída personalizada: `expac -s "%-30n %v" regex` (precisa de expac).

#### Com tamanho

Para obter uma lista de pacotes instalados ordenados por tamanho, que pode ser útil para liberar espaço em seu disco rígido:

- Instale expac e execute `expac -H M '%m\t%n' | sort -h`.
- Execute pacgraph com a opção `-c`.

Para listas o tamanho baixado de vários pacotes (deixe `pacotes` em branco para listar todos os pacotes):

    $ expac -S -H M '%k\t%n' pacotes

Para listar pacotes instalados explicitamente que não estejam em base nem base-devel com tamanho e descrição:

    $ expac -H M "%011m\t%-20n\t%10d" $(comm -23 <(pacman -Qqen | sort) <(pacman -Qqg base base-devel | sort)) | sort -n

#### Por data

Para listar os últimos 20 pacotes instalados com expac, execute:

    $ expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort | tail -n 20

ou com segundos desde o epoch (1970-01-01 UTC):

    $ expac --timefmt=%s '%l\t%n' | sort -n | tail -n 20

#### Que não estejam em um grupo ou repositório especificado

Nota: Para obter uma lista de pacotes instalados como dependências, mas não mais exigidos para qualquer pacote instalado, veja #Removendo pacotes não usados (órfãos).

Listar os pacotes instalados explicitamente que não estejam no grupo base nem no base-devel:

    $ comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base base-devel | sort)

Listar todos os pacotes instalados não necessários para outros pacotes, e que não estejam no grupo base nem no base-devel:

    $ comm -23 <(pacman -Qqt | sort) <(pacman -Sqg base base-devel | sort)

Mesmo que o acima, mas com descrições:

    $ expac -HM '%-20n\t%10d' $(comm -23 <(pacman -Qqt | sort) <(pacman -Qqg base base-devel | sort))

Listar todos os pacotes instalados que não estão no repositório especificado nome_repo

    $ comm -23 <(pacman -Qtq | sort) <(pacman -Slq nome_repo | sort)

Listar todos os pacotes instalados que estão no repositório nome_repo:

    $ comm -12 <(pacman -Qtq | sort) <(pacman -Slq nome_repo | sort)

#### Pacotes de desenvolvimento

Para listar todos os pacotes de desenvolvimento/instáveis, execute:

    $ pacman -Qq | awk '/^.+(-cvs|-svn|-git|-hg|-bzr|-darcs)$/'

### Listando arquivos pertencentes a um pacote com tamanho

Este pode ser útil se você descobriu que um pacote específico usa uma enorme quantidade de espaço e você quer descobrir quais arquivos usam mais desse espaço.

    $ pacman -Qlq pacote | grep -v '/$' | xargs du -h | sort -h

### Identificar arquivos que pertençam a nenhum pacote

Se seu arquivo possui arquivos não pertencentes a qualquer pacote (um caso comum se você não usa o gerenciador de pacotes para instalar softwares), você pode querer descobrir quais são esses arquivos para limpá-los. O processo geral para fazer isso:

1. Crie uma lista ordenada dos arquivos que você deseja verificar quem é o dono:

       $ find /etc /opt /usr | sort > todos_arquivos.txt

2. Crie uma lista ordenada dos arquivos rastreados pelo pacman (e remova as barras ao final dos diretórios):

       $ pacman -Qlq | sed 's|/$||' | sort > donos_arquivos.txt

3. Encontre linhas na primeira lista que não estão na segunda:

       $ comm -23 todos_arquivos.txt donos_arquivos.txt

Este processo é complicado na prática porque muitos arquivos importantes não fazem parte de nenhum pacote (por exemplo, arquivos gerados em tempo de execução, configurações personalizadas) e, portanto, serão incluídos na saída final, dificultando a escolha dos arquivos que podem ser excluídos com segurança.

Dica: O script lostfilesAUR realizar etapas similares, mas também inclui uma lista negra extensa para remover falso-positivos comuns da saída. aconfmgr (aconfmgr-gitAUR) também permite rastrear arquivos órfãos usando um script de configuração.

### Removendo pacotes não usados (órfãos)

Para remover recursivamente ófãos e seus arquivos de configuração:

    # pacman -Rns $(pacman -Qtdq)

Se nenhum órfão for encontrado, o pacman emite `erro: nenhum alvo especificado`. É esperado que nenhum tenha sido passado para `pacman -Rns`.

Nota: Os argumentos `-Qt` listam somente verdadeiros órfãos. Para incluir pacotes que são opcionalmente exigidos por outro pacote, passe a opção `-t` duas vezes, ou seja, `-Qtt`.

### Removendo tudo exceto o grupo base

Se for necessário remover todos os pacotes, exceto o grupo base, experimente esta linha:

    # pacman -R $(comm -23 <(pacman -Qq | sort) <((for i in $(pacman -Qqg base); do pactree -ul "$i"; done) | sort -u))

Essa linha foi originalmente aconselhada nesta discussão e posteriormente melhorada neste artigo.

### Obtendo a lista de dependências de vários pacotes

As dependências são ordenadas alfabeticamente e as duplas são removidas.

Nota: Para só mostrar a árvore de pacotes instalados, use `pacman -Qi`.

    $ pacman -Si pacotes | awk -F'[:<=>]' '/^Depends/ {print $2}' | xargs -n1 | sort -u

Alternativamente, com expac:

    $ expac -l '\n' %E -S pacotes | sort -u

### Listando arquivos backup modificados

Se você quiser fazer backup dos arquivos de configuração do seu sistema, você pode copiar todos os arquivos em `/etc/`, mas normalmente você só estaria interessado nos arquivos que você alterou. Os arquivos backup modificados podem ser vistos com o seguinte comando:

    # pacman -Qii | awk '/^MODIFIED/ {print $2}'

Executar esse comando com permissões de root' vai garantir que os arquivos legíveis apenas pelo root (como o `/etc/sudoers`) sejam incluídos na saída.

Dica: Veja #Listando todos os arquivos alterados de pacotes para listar os arquivos alterados que o pacman conhece, e não apenas arquivos backup.

### Fazer backup da base de dados do pacman

O seguinte comando pode ser usado para fazer backup da base de dados local do pacman:

    $ tar -cjf pacman_database.tar.bz2 /var/lib/pacman/local

Armazene o arquivo de base de dados backup do pacman em uma ou mais mídias offline, tal como um pendrive, disco rígido externo ou um CD-R.

A base de dados pode ser restaurada movendo o arquivo `pacman_database.tar.bz2` para o diretório `/` e execução o comando a seguir:

    # tar -xjvf pacman_database.tar.bz2

Nota: Se os arquivos de base de dados do pacman estiverem corrompidos e não houver um arquivo backup disponível, há alguma esperança de recompilar a base de dados do pacman. Consulte #Restaurar a base de dados local do pacman.
Dica: O pacote pakbak-gitAUR fornece um script e um serviço systemd para automatizar a tarefa. A configuração é possível em `/etc/pakbak.conf`.

### Verificar changelogs facilmente

Quando os mantenedores atualizam os pacotes, os commits geralmente são comentados de forma útil. Os usuários podem verificá-los rapidamente a partir da linha de comando instalando pacologAUR. Este utilitário lista mensagens de commit recentes para pacotes dos repositórios oficiais ou do AUR, usando `pacolog <pacote>`.

## Instalação e recuperação

Meios alternativos de obter e restaurar pacotes.

### Instalando pacotes a partir de um CD/DVD ou pendrive

Para baixar pacotes ou grupos de pacotes:

    # cd ~/Packages
    # pacman -Syw base base-devel grub-bios xorg gimp --cachedir .
    # repo-add ./custom.db.tar.gz ./*

Então, você pode gravar a pasta "Packages" para um CD/DVD ou transferi-la para um pendrive, HDD externo, etc.

Para instalar:

1. Monte a mídia:

    # mkdir /mnt/repo
    # mount /dev/sr0 /mnt/repo    #Para um CD/DVD.
    # mount /dev/sdxY /mnt/repo   #Para um pendrive.

2. Edite `pacman.conf` e adicione esse repositório antes dos outros (ex.: extra, core, etc.). Isso é importante. Não apenas descomente aquele na parte de baixo. Essa forma garante que os arquivos do CD/DVD/pendrive tenham precedência sobre aqueles nos repositórios padrões:

    /etc/pacman.conf

    [custom]
    SigLevel = PackageRequired
    Server = file:///mnt/repo/Packages

3. Finalmente, sincronize a base de dados do pacman para habilitar o uso do novo repositório:

    # pacman -Syu

### Repositório local personalizado

Use o script repo-add, incluído no pacman, para gerar uma base de dados para um repositório pessoal. Use `repo-add --help` para obter mais detalhes sobre seu uso. Para adicionar um novo pacote à base de dados, ou para substituir a versão antiga de um pacote existente na base de dados, execute:

    $ repo-add /caminho/para/repo.db.tar.gz /caminho/para/pacote-1.0-1-x86_64.pkg.tar.xz

Nota: Uma base de dados de pacote é um arquivo tar, opcionalmente comprimida. Extensões válidas são .db ou .files seguido por uma extensão de arquivamento de .tar, .tar.gz, .tar.bz2, .tar.xz ou.tar.Z. O arquivo não precisa existir, mas todos os diretórios pais devem existir.

A base de dados e os pacotes não precisam estar no diretório ao usar repo-add, mas tenha em mente que ao usar pacman com aquela base de dados, eles devem estar juntos. Armazenar todos os pacotes compilados para serem incluídos no repositório em um diretório também permite usar a expansão shell glob para adicionar ou atualizar vários pacotes ao mesmo tempo.

    $ repo-add /caminho/para/repo.db.tar.gz /caminho/para/*.pkg.tar.xz

Atenção: repo-add adiciona as entradas na base de dados na mesma ordem que foi passada na linha de comando. Se várias versões do mesmo pacote estiverem envolvidas, deve-se ter cuidado para garantir que a versão correta seja adicionada por último. Em particular, observe que a ordem lexical usada pelo shell depende do locale e difere do pedido de vercmp usado pelo pacman.

repo-remove é usado para remover pacotes da base de dados de pacotes, exceto que somente nomes de pacotes são especificados na linha de comando.

    $ repo-remove /caminho/para/repo.db.tar.gz pkgname

Uma vez que a base de dados local do repositório tenha sido criado, adicione o repositório a `pacman.conf` para cada sistema que seja para usar o repositório. Um exemplo de um repositório personalizado está em `pacman.conf`. O nome do repositório é o nome do arquivo da base de dados com a extensão do arquivo omitida. No caso do exemplo acima, o nome do repositório simplesmente seria repo. Consulte a localização do repositório usando um URL `file://`, ou via FTP usando o diretório ftp://localhost/caminho/para/diretório.

Se quiser, adicione um repositório personalizado à lista de repositórios de usuário não oficiais, de forma que a comunidade possa se beneficiar dele.

### Cache do pacman compartilhado na rede

Se você tiver várias máquinas com Arch na sua rede local, você pode compartilhar pacotes para que você possa diminuir significativamente os tempos de download. Tenha em mente que você não deve compartilhar entre arquiteturas diferentes (isto é, i686 e x86_64) ou você terá problemas.

#### Cache de somente leitura

Se você está procurando uma solução rápida e ruim, você pode simplesmente executar um servidor web autônomo que outros computadores possam usar como um primeiro espelho: `darkhttpd /var/cache/pacman/pkg`. Basta adicionar este servidor no topo da sua lista de espelhos. Esteja ciente de que você pode obter um monte de erros 404, devido a falta de cache, dependendo do que você faz, mas o pacman tentará os seguintes espelhos (reais) quando isso acontecer.

#### Cache somente leitura distribuído

Existem ferramentas específicas do Arch para descobrir automaticamente outros computadores em sua rede oferecendo um cache de pacote. Tente pacserve, pkgdistcacheAUR ou paclanAUR. O pkgdistcache usa Avahi em vez de UDP simples, que pode funcionar melhor em determinadas redes domésticas que roteiam em vez de ponte entre WiFi e Ethernet.

Historicamente, havia PkgD e multipkg, mas eles não são mais mantidos.

#### Cache de leitura-escrita

Para compartilhar pacotes entre vários computadores, simplesmente compartilhe `/var/cache/pacman/` usando qualquer protocolo de montagem em rede. Esta seção mostra como usar shfs ou SSHFS para compartilhar um cache de pacotes mais os diretórios de biblioteca relacionados entre vários computadores na mesma rede local. Tenha em mente que um cache compartilhado em rede pode ser lento dependendo da escolha do sistema de arquivos, entre outros fatores.

Primeiro, instale qualquer sistema de arquivos que tenha suporte a rede: shfs-utils, sshfs, curlftpfs, samba ou nfs-utils.

Dica:

- Para usar sshfs ou shfs, considere ler Using SSH Keys.
- Por padrão, smbfs não fornece nomes de arquivos que contenham dois pontos, o que resulta no cliente baixar o pacote problemática novamente. Para evitar isso, use a opção de montagem `mapchars` no cliente.

Então, para compartilhar os pacotes, monte `/var/cache/pacman/pkg` do servidor em `/var/cache/pacman/pkg` para toda máquina cliente.

Nota: Não torne `/var/cache/pacman/pkg` ou qualquer um de seus antecessores (ex., `/var`) um link simbólico. Pacman espera que esses sejam diretórios. Quando o pacman reinstala ou atualiza a si próprio, ele vai remover os links simbólicos e vai criar diretórios vazios no lugar. Porém, durante a transação, o pacman depende de alguns pacotes estarem lá, resultando em quebrar o processo de atualização. Veja FS#50298 para mais detalhes.

#### Duas vias com rsync

Outra abordagem em um ambiente local é rsync. Escolha um servidor para armazenamento em cache e ative o Rsync#rsync daemon. Nos clientes, sincronize em duas vias com este compartilhamento via protocolo rsync. Os nomes dos arquivos que contêm dois pontos não são um problema para o protocolo rsync.

Um exemplo de rascunho para um cliente, usando `uname -m` dentro de nome de compartilhamento garante uma sincronização dependente da arquitetura:

     # rsync rsync://servidor/share_$(uname -m)/ /var/cache/pacman/pkg/ ...
     # pacman ...
     # paccache ...
     # rsync /var/cache/pacman/pkg/ rsync://servidor/share_$(uname -m)/  ...

#### Cache dinâmico de proxy reverso usando nginx

nginx pode ser usado para solicitações de proxy para espelhos oficiais de upstream e armazenar em cache os resultados para o disco local. Todas as solicitações subsequentes para esse arquivo serão atendidas diretamente do cache local, minimizando a quantidade de tráfego de internet necessária para atualizar um grande número de servidores com um esforço mínimo.

Atenção: Este método tem uma limitação. Você deve usar espelhos que usam o mesmo caminho relativo para o pacote de arquivos e você deve configurar seu cache para usar esse mesmo caminho. Neste exemplo, estamos usando espelhos que usam o caminho relativo `/archlinux/$repo/os/$arch` e a definição `Server` do nosso cache no `mirrorlist` está configurada similarmente.

Neste exemplo, vamos executar o servidor de cache em `http://cache.domain.local:8080/` e armazenar os pacotes em `/srv/http/pacman-cache/`.

Crie o diretório para o cache e ajuste as permissões de forma que o nginx possa escrever os arquivos para ele:

     # mkdir /srv/http/pacman-cache
     # chown http:http /srv/http/pacman-cache

Em seguida, configure o nginx como o cache dinâmico (leia os comentários para uma explicação dos comandos).

Finalmente, atualize seus outros servidores Arch Linux para usar esse novo cache adicionando a seguinte linha ao arquivo `mirrorlist`:

    /etc/pacman.d/mirrorlist

    Server = http://cache.domain.local:8080/archlinux/$repo/os/$arch
    ...

Nota: Você precisará criar um método para limpar pacotes antigos, pois esse diretório continuará a crescer ao longo do tempo. `paccache` (que está incluído no pacman ) pode ser usado para automatizar isso usando os critérios de retenção de sua escolha. Por exemplo, `find /srv/http/pacman-cache/ -type d -exec paccache -v -r -k 2 -c {} \;` manterá as últimas 2 versões de pacotes no seu diretório de cache.

#### Sincronizar cache de pacotes do pacman usando programas de sincronização

Use Resilio Sync ou Syncthing para sincronizar as pastas de cache do pacman (ou seja, `/var/cache/pacman/pkg`).

#### Prevenção de purgas de cache indesejadas

Por padrão, `pacman -Sc` remove tarballs de pacotes do cache que correspondem a pacotes que não estão instalados na máquina em que o comando foi emitido. Porque o pacman não pode prever quais pacotes estão instalados em todas as máquinas que compartilham o cache, ele acabará excluindo arquivos que não deveriam ser excluídos.

Para limpar o cache de forma que apenas tarballs desatualizados seja excluídos, adicione essa entrada na seção `[options]` do `/etc/pacman.conf`:

    CleanMethod = KeepCurrent

### Recriar um pacote do sistema de arquivos

Para recriar um pacote do sistema de arquivos, use bacman (incluído no pacman). Os arquivos do sistema são aceitos como estão, portanto, quaisquer modificações estarão presentes no pacote montado. Distribuir o pacote recriado é, portanto, desencorajado; veja ABS e Arch Rollback Machine para obter alternativas.

Dica: bacman honra as opções `PACKAGER`, `PKGDEST` e `PKGEXT` do `makepkg.conf`. Opções personalizadas para as ferramentas de compressão podem ser configuradas exportando a variável de ambiente relevante. Por exemplo, `XZ_OPT="-T 0"` vai habilitar compressão paralela para xz.

Uma ferramenta alternativa seria fakepkgAUR. Ela oferece suporte a paralelização e pode lidar com vários pacotes de entrada em um comando, duas coisas a que o bacman não oferece suporte.

### Lista de pacotes instalados

Manter uma lista de pacotes instalados explicitamente pode ser útil para acelerar a instalação em um novo sistema:

    $ pacman -Qqe > pkglist.txt

Nota: Se você usou `-Qqet`, ao reinstalar a lista, todos os pacotes de nível superior não seriam definidos como dependências.

Para instalar pacotes da lista backup, execute:

    # pacman -S - < pkglist.txt

Dica:

- Para pular pacotes já instalados, use `--needed`.
- Use `comm -13 <(pacman -Qqdt | sort) <(pacman -Qqdtt | sort) > optdeplist.txt` para também criar uma lista de dependências opcionais instaladas que podem ser reinstaladas com `--asdeps`.

No caso da lista incluir pacotes externos, tal como pacotes do AUR, remova-os primeiro:

    # pacman -S $(comm -12 <(pacman -Slq | sort) <(sort pkglist.txt))

Para remover todos os pacotes em seu sistema que não são mencionados na lista:

    # pacman -Rsu $(comm -23 <(pacman -Qq | sort) <(sort pkglist.txt))

Dica: Essas tarefas podem ser automatizadas. Veja bacpacAUR, packupAUR, pacmanityAUR epugAUR para exemplos.

### Listando todos os arquivos alterados de pacotes

Se você suspeitar de corrompimento de arquivos (por exemplo, por falha de software/hardware), mas não tem certeza se os arquivos foram corrompidos, você pode querer comparar com as somas de hash nos pacotes. Isso pode ser feito com pacutils:

    # paccheck --md5sum --quiet

Para recuperação da base de dados, veja #Restaurar a base de dados local do pacman. Os arquivos `mtree` também pode ser extraído como `.MTREE` a partir dos respectivos arquivos de pacote.

Nota: Isso não deve ser usado assim quando se suspeita de mudanças maliciosas! Neste caso, são recomendadas precauções de segurança, como o uso de uma mídia Live e uma fonte independente para as somas de hash.

### Reinstalando todos pacotes

Para reinstalar todos os pacotes nativos, use:

    # pacman -Qnq | pacman -S -

Pacotes externos (do AUR) devem ser reinstalados separadamente; você pode listá-los com `pacman -Qmq`.

Pacman preserva o motivo de instalação por padrão.

### Restaurar a base de dados local do pacman

Veja Pacman/Restaurar base de dados local.

### Recuperando um pendrive a partir de uma instalação existente

Se você possui o Arch instalado em um pendrive e conseguir arruiná-lo (por exemplo, removê-lo enquanto ainda está sendo gravado), é possível reinstalar todos os pacotes e, com esperança, recuperá-lo e trabalhar novamente (presumindo que o pendrive esteja montado em `/novoarch`)

    # pacman -S $(pacman -Qq --dbpath /novoarch/var/lib/pacman) --root /novoarch --dbpath /novoarch/var/lib/pacman

### Vendo um único arquivo dentro de um arquivo .pkg

Por exemplo, se você deseja ver o conteúdo de `/etc/systemd/logind.conf` fornecido no pacote systemd:

    $ tar -xOf /var/cache/pacman/pkg/systemd-204-3-x86_64.pkg.tar.xz etc/systemd/logind.conf

Ou você pode usar vim para navegar no pacote:

    $ vim /var/cache/pacman/pkg/systemd-204-3-x86_64.pkg.tar.xz

### Localizar aplicativos que usam bibliotecas de pacotes mais antigos

Mesmo se você instalou um pacote, os programas existentes de longa duração (como daemons e servidores) continuam usando código de bibliotecas de pacotes antigos. E é uma má ideia deixar esses programas em execução se a biblioteca antiga contiver um erro de segurança.

Aqui está uma maneira de encontrar todos os programas que usam código de pacotes antigo:

    # lsof +c 0 | grep -w DEL | awk '1 { print $1 ": " $NF }' | sort -u

Ele imprimirá o nome do programa em execução e a biblioteca antiga que foi removida ou substituída por conteúdo mais novo.

## Desempenho

### Velocidades de acesso da base de dados

O pacman armazena todas as informações do pacote em uma coleção de pequenos arquivos, um para cada pacote. Melhorar as velocidades de acesso à base de dados reduz o tempo gasto nas tarefas relacionadas à base de dados como, por exemplo, procurando por pacotes e resolução de dependências de pacotes. O método mais seguro e mais fácil é executar como root:

    # pacman-optimize

Isso tentará colocar todos os pequenos arquivos em uma única localização (física) no disco rígido para que a cabeça do disco rígido não precise se mover tanto ao acessar todos os dados. Este método é seguro, mas não é infalível: depende do seu sistema de arquivos, do uso do disco e da fragmentação do espaço vazio. Outra opção, mais agressiva, seria primeiro remover os pacotes desinstalados do cache e remover repositórios não utilizados antes da otimização da base de dados:

    # pacman -Sc && pacman-optimize

### Velocidades de download

Nota: Se suas velocidades de download foram reduzidas a uma lesma, certifique-se de usar um dos muitos espelhos e não o ftp.archlinux.org, cuja velocidade é limitada desde março de 2007.

Ao baixar pacotes, o pacman usa os espelhos na ordem em que estão no `/etc/pacman.d/mirrorlist`. O espelho que está no topo da lista por padrão, no entanto, pode não ser o mais rápido para você. Para selecionar um espelho mais rápido, veja Mirrors.

A velocidade do pacman ao baixar pacotes também pode ser melhorada usando um aplicativo diferente para baixar pacotes, em vez baixador de arquivos embutido do pacman.

Em todos os casos, certifique-se de ter o pacman mais recente antes de fazer quaisquer modificações.

    # pacman -Syu

#### Powerpill

Powerpill é um wrapper do pacman que faz uso de download paralelo e segmentado para tentar acelerar os downloads para o pacman.

#### wget

Esse também é muito útil se você precisar de configurações de proxy mais poderosas que as capacidades incorporadas no pacman.

Para usar o `wget`, primeiro instale o pacote wget e, após, modifique o `/etc/pacman.conf` descomentando a seguinte linha na seção `[options]`:

    XferCommand = /usr/bin/wget -c -q --show-progress --passive-ftp -O %o %u

Em vez de descomentar os parâmetros de `wget` no `/etc/pacman.conf`, você também pode modificar o arquivo de configuração do `wget` diretamente (o arquivo de todo o sistema é `/etc/wgetrc`, enquanto arquivos por usuário são `$HOME/.wgetrc`.

#### aria2

O aria2 é um utilitário de download leve com suporte a downloads resumíveis e segmentados via HTTP/HTTPS e FTP. O aria2 permite conexões múltiplas e simultâneas de HTTP/HTTPS e FTP para um espelho do Arch, o que deve resultar em um aumento na velocidade de download para a obtenção de arquivos e pacotes.

Nota: O uso do aria2c no XferCommand do pacman não vai resultar em downloads paralelos de múltiplos pacotes. O pacman chama o XferCommand com um único pacote por vez e aguarda por ele concluir antes de chamar o próximo. Para baixar múltiplos pacotes em paralelo, veja Powerpill.

Instale o aria2 e, após, edite o `/etc/pacman.conf` adicionando a seguinte linha à seção `[options]`:

    XferCommand = /usr/bin/aria2c --allow-overwrite=true --continue=true --file-allocation=none --log-level=error --max-tries=2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=60 --timeout=5 --dir=/ --out %o %u

Dica: Essa configuração alternativa para usar o pacman com aria2 tenta simplificar a configuração e adiciona mais opções de configuração.

Veja OPTIONS em aria2c(1) para opções do aria2c usadas.

- `-d, --dir`: O diretório para armazenar o arquivos baixados, conforme especificado pelo pacman.
- `-o, --out`: Os nomes de arquivo dos arquivos baixados.
- `%o`: A variável que representa os nomes de arquivos locais, conforme especificado pelo pacman.
- `%u`: A variável que representa a URL de download, conforme especificado pelo pacman.

#### Outros aplicativos

Existem outros aplicativos de download que você pode usar com pacman. Aqui estão, e as configurações associadas de XferCommand:

- `snarf`: `XferCommand = /usr/bin/snarf -N %u`
- `lftp`: `XferCommand = /usr/bin/lftp -c pget %u`
- `axel`: `XferCommand = /usr/bin/axel -n 2 -v -a -o %o %u`
- `hget`: `XferCommand = /usr/bin/hget %u -n 2 -skip-tls false` (por favor, leia a documentação na página de projeto no Github para mais informações)

## Utilitários

- Lostfiles — Script que identifica arquivos que não pertencem a nenhum pacote.

  https://github.com/graysky2/lostfiles || lostfilesAUR

- Pacmatic — Wrapper do pacman para verificar o Arch News antes de atualizar, evitar atualizações parciais e avisar sobre alterações de arquivo de configuração.

  http://kmkeen.com/pacmatic || pacmatic

- pacutils — Biblioteca auxiliar para programas baseados no libalpm.

  https://github.com/andrewgregory/pacutils || pacutils

- pkgfile — Ferramenta que descobre qual pacote é dono de um arquivo.

  http://github.com/falconindy/pkgfile || pkgfile

- pkgtools — Coleção de scripts para pacotes do Arch Linux.

  https://github.com/Daenyth/pkgtools || pkgtoolsAUR

- repoctl — Ferramenta para ajudar a gerenciar repositórios locais.

  https://github.com/cassava/repoctl || repoctlAUR

- repose — Uma ferramenta para construção de repositório do Arch Linux.

  https://github.com/vodik/repose || repose

- snap-pac — Faz o pacman usar automaticamente o snapper para criar snapshots pré/pós como o YaST do openSUSE.

  https://github.com/wesbarnett/snap-pac || snap-pac

### Front-ends gráficos

Atenção: Alguns front-ends, como o octopiAUR [1], realizam atualizações parciais periodicamente.

- Arch-Update — Indicador de atualização para o GNOME-Shell.

  https://github.com/RaphaelRochet/arch-update || gnome-shell-extension-arch-updateAUR

- Arch-Update-Notifier — Indicador de atualização para o KDE.

  https://github.com/I-Dream-in-Code/kde-arch-update-plasmoid || plasma5-applets-kde-arch-update-notifier-gitAUR

- Discover — Uma coleção de ferramentas de gerenciamento de pacotes para o KDE, usando PackageKit.

  https://projects.kde.org/projects/kde/workspace/discover || discover

- GNOME packagekit — Ferramenta de gerenciamento de pacotes baseada em GTK

  http://www.freedesktop.org/software/PackageKit/ || gnome-packagekit

- GNOME Software — Aplicativo de softwares do GNOME. (Seleção curada para o GNOME)

  https://wiki.gnome.org/Apps/Software || gnome-software

- kalu — Um pequeno aplicativo que vai adicionar um ícone à sua área de notificação e ficar lá verificando regularmente se há alguma coisa nova para você atualizar.

  https://jjacky.com/kalu/ || kaluAUR

- pamac — Um daemon de DBus e front-end de Gtk3 para libalpm escrito em Vala.

  https://github.com/manjaro/pamac/ || pamac-aurAUR

- pcurses — Gerenciamento de pacotes em um front-end curses

  https://github.com/schuay/pcurses || pcurses

- tkPacman — Depende apenas de Tcl/Tk e X11 e interage com base de dados de pacotes via a CLI do pacman.

  http://sourceforge.net/projects/tkpacman || tkpacmanAUR

Category:

- Package management (Português)