Arch Linux - Limpeza de pacotes

Publicado por edps em 02/04/2012

[ Hits: 25.598 ]

Blog: https://edpsblog.wordpress.com/

 


Arch Linux - Limpeza de pacotes



Veremos agora como ganhar espaço em disco, removendo os pacotes do Cache do Pacman que estejam obsoletos, ou não instalados localmente.

Antes de por a mão na massa, vejamos como estava a minha pasta de Cache do Pacman:

-> 1424 arquivos, totalizando 1.8GB de dados.

O Help da opção -S:

sudo pacman -S --help

A limpeza propriamente dita:

sudo pacman -Sc --noconfirm

Obs. 1: Para que os pacotes instalados sejam mantidos no Cache, será necessário deixar a opção CleanMethod em “/etc/pacman.conf”, assim:

CleanMethod = KeepInstalled


Obs. 2: Caso desejem remover todos os pacotes do Cache, substituam o comando exemplificado acima por:

pacman -Scc --noconfirm

Usuários de internet 3G, nem em sonho podem pensar nisso! Cada MB economizado vale muito!

Como ficaram as pastas onde a limpeza foi efetuada:

" /var/cache/pacman/pkg/"

" /var/lib/pacman/sync/"

Continuando...

Caso tenham interesse em deixar seu Arch Linux 'puro', ou seja, livre das compras dos finais de semana no AUR (rsrsrs), podemos adotar o seguinte procedimento:

Obtendo a lista do que não faz parte dos repos oficiais:

sudo pacman -Qm

Direcionando esta listagem para um arquivo:

pacman -Qqm > pkgs_AUR.txt

E removendo os mesmos com a opção mais neurótica de todas:

sudo pacman -Rscn $(cat pkgs_AUR.txt)

Observem a situação acima e as duas subsequentes, escolham a mais segura, eu indico '-Rd'. Na dúvida, vejam o Help da opção com pacman: -R --help

A remoção mais simples:

sudo pacman -R $(cat pkgs_AUR.txt)

E a de melhor custo-benefício:

sudo pacman -Rd $(cat pkgs_AUR.txt)

Remoção simplificada

sudo pacman -Rd $(pacman -Qmq)

Obs.: Pule todos os passos acima, incluindo a criação do arquivo de texto, adicione '--noconfirm', e a remoção ocorrerá de forma automática e sem intervenção do usuário (vejam mais abaixo).

Pacotes Órfãos

Seguindo o modelo acima, podemos remover os pacotes órfãos assim:

sudo pacman -Qdt
$ pacman -Qdtq > pkgs_orfãos.txt
$ sudo pacman -Rd $(cat pkgs_orfãos.txt)

Ou simplificando, assim:

pacman -Rd $(pacman -Qtdq)

Ou automatizando, assim:

pacman -Rd --noconfirm $(pacman -Qtdq)

Obs.: É desnecessário dizer que, se algo importante for removido, não será por minha culpa! Esta opção é o equivalente ao '-y', ou '- y --force-yes' do Debian. Vantajosa às vezes, e perigosíssima noutras.

Beleza, remoção sem problemas! Noutras vezes, dá choro!

Referências



Outras dicas deste autor

Pesquisa de arquivos e executáveis em pacotes .deb

Ubuntu Manpage Repository

Web Rádios

Mantendo o cache de pacotes no Fedora

SBoupgrade - Atualize seu SlackBuild!

Leitura recomendada

Woody, Sarge e Sid - um breve introdução às versões do Debian

Configurando dispositivo wireless Atheros 5006EG no Ubuntu Gutsy

Java: Lendo a entrada do teclado

Skype 4 - Instalação no Ubuntu 12.4 LTS

Instalando o PostgreSQL no GNU/Linux

  

Comentários
[1] Comentário enviado por niquelnausea em 02/04/2012 - 12:49h

para quem usa 3g é bom usar também a opção "KeepCurrent"

CleanMethod = KeepInstalled KeepCurrent

[2] Comentário enviado por WhiteHawk em 02/04/2012 - 13:29h

Ótimo!

Dica bem escrita, simples e didática.

Nota 10.

[3] Comentário enviado por removido em 02/04/2012 - 19:45h

@niquelnausea, obrigado brother pela sugestão, eu tinha conhecimento da opção 'KeepCurrent' mas nunca a utilizei, aproveitando sua dica dei uma olhada na documentação e vi que como você mesmo indicou ambas as opções podem coexistir:

http://www.archlinux.org/pacman/pacman.conf.5.html


CleanMethod = KeepInstalled &| KeepCurrent

"
If set to KeepInstalled (the default), the -Sc operation will clean packages that are no longer installed (not present in the local database).

"If set to KeepCurrent, -Sc will clean outdated packages (not present in any sync database). The second behavior is useful when the package cache is shared among multiple machines, where the local databases are usually different, but the sync databases in use could be the same.

If both values are specified, packages are only cleaned if not installed locally and not present in any known sync database.
"

valeu!


@White Hawk, thanks man!



Contribuir com comentário