Como deletar pacotes antigos instalados pelo pacman no Arch Linux?

Como deletar pacotes antigos instalados pelo pacman no Arch Linux?

Instalei recentemente o Arch Linux e descobri que estou consumindo muito armazenamento de forma relativamente rápida. Por alguma razão, já usei 17 GB em apenas 2 semanas. Não tenho muitos softwares instalados, então sou levado a acreditar que todos os pacotes antigos são mantidos em algum lugar.

Para apoiar isso, notei que se eu instalar um pacote, removê-lo e reinstalá-lo, o pacman simplesmente descompacta e reinstala o software sem precisar baixá-lo novamente.

Depois de instalar meu sistema básico, antes do software extra, usei cerca de 2 GB ou mais, talvez. Desde então, instalei apenas Matlab, Skype, Wine e alguns outros programas pequenos. É claro que também instalei bibliotecas ausentes e similares, mas não valem quase 15 GB.

Estou completamente errado aqui ou o Arch nunca exclui pacotes antigos ao baixar/atualizar para novas versões?

Em caso afirmativo, como excluo esses pacotes não utilizados?

Além disso, quando removo pacotes instalados, usopacman -R ...

Responder1

Não, o pacman não remove pacotes antigos do seu cache ( /var/cache/pacman/pkg) então, com o tempo, ele pode ficar cheio.

Você pode adotar duas abordagens para limpar o cache: a de força bruta com pacman -Sc:

-c, --clean
Remove pacotes que não estão mais instalados no cache, bem como bancos de dados de sincronização não utilizados atualmente para liberar espaço em disco. Quando o pacman baixa pacotes, ele os salva em um diretório de cache. Além disso, os bancos de dados são salvos para cada banco de dados de sincronização do qual você baixa e não são excluídos mesmo se forem removidos do arquivo de configuração pacman.conf(5). Use uma opção --clean para remover apenas pacotes que não estão mais instalados; use dois para remover todos os arquivos do cache. Em ambos os casos, você terá a opção de sim ou não para remover pacotes e/ou bancos de dados baixados não utilizados.

Ou, para uma abordagem mais sutil, você pode usar um dos utilitários fornecidos com o pacman-contrib paccache:

paccache é um utilitário flexível de limpeza de cache do pacman, que possui inúmeras opções para ajudar a controlar quanto e o que é excluído de qualquer diretório contendo tarballs do pacote pacman.

Por padrão, paccache -rremoverá todas as três últimas versões de um pacote instalado, mas você pode alterar esse número com a -k, --keepopção. Há também uma -d, --dryrunopção para visualizar suas alterações. Você também pode usar a -m, --move <dir>opção de mover os pacotes para um diretório separado de sua escolha. Veja paccache -hou paccache --helppara todos os interruptores.

Existem vários utilitários no pacote pacman-contrib para auxiliar no gerenciamento de pacotes, vale a pena dar uma olhada em todos eles e entender como eles funcionam e podem tornar a execução do Arch muito mais fácil. Você pode ver a lista completa com:

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

Responder2

O cache do seu pacote está no formato /var/cache/pacman/pkg/.

OBSERVAÇÃO: pacmanos pacotes foram atualizados em 2018 e requerem instalação adicional pacman-contribpara usar scripts/ferramentas conforme paccachedescrito abaixo.

Fazer:

paccache -d

Para fazer um -dryrune ver o que uma execução desse utilitário pode remover na próxima vez:

paccache -r

Para remover pacotes em cache. 17gbs parece íngreme. Certifique-se de não ter alguns registros de fuga. Fazer:

du -h /var/log

Ou mesmo apenas:

du -h /var

Para uma ideia mais geral do que está acontecendo.

Responder3

Sugiro fortemente o uso depaccacheem vez de pacman -Sc. Existe até um sinalizador muito eficaz para remover seletivamente as versões de pacotes desinstalados -u. Os sinalizadores que paccacherecomendo são (como parte do paccache v5.0.2):

  • -d, --dryrun: realiza uma simulação, encontrando apenas pacotes candidatos
  • -r, --remove: remover pacotes candidatos
  • -u, --uninstalled: direciona apenas pacotes desinstalados
  • -k, --keep <num>: mantém "num" de cada pacote no cache (padrão: 3)

Exemplo: Verifique as versões de cache restantes dos pacotes desinstalados

paccache -dvuk0

Responder4

pacman -Sccfaz o que você está pedindo, mas não é recomendado. DeWikipédia

Também é possível esvaziar completamente a pasta de cache compacman -Scc, mas fazê-lo é considerado uma má prática, pois, além do acima, também impede a reinstalação de um pacote diretamente da pasta cache em caso de necessidade, obrigando a baixá-lo novamente. Você nunca deve usá-lo, a menos que haja uma necessidade desesperada de mais espaço em disco.

À parte, quando desinstalo pacotes, prefiro usar pacman -Rnsc, pois também remove dependências de pacotes, bem como pacotes que dependem deste. Como sempre, leia atentamente quais pacotes estão sendo removidos, pois você pode facilmente deixar nosso sistema inutilizável.

informação relacionada