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 -r
removerá todas as três últimas versões de um pacote instalado, mas você pode alterar esse número com a -k, --keep
opção. Há também uma -d, --dryrun
opçã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 -h
ou paccache --help
para 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: pacman
os pacotes foram atualizados em 2018 e requerem instalação adicional pacman-contrib
para usar scripts/ferramentas conforme paccache
descrito abaixo.
Fazer:
paccache -d
Para fazer um -dryrun
e 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 depaccache
em vez de pacman -Sc
. Existe até um sinalizador muito eficaz para remover seletivamente as versões de pacotes desinstalados -u
. Os sinalizadores que paccache
recomendo 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 -Scc
faz 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.