Arch Linux - Limpeza de pacotes

Publicado por edps em 02/04/2012

[ Hits: 35.244 ]

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

Archey, Bash Info Tool

Debian: modificando a forma como o APT instala pacotes

Pesquisa de arquivos e executáveis em pacotes .deb

Emerald + Compiz no Debian

Pogo Audio Player no Arch Linux, Debian, Slackware e Ubuntu

Leitura recomendada

Instalando e Configurando o No-ip no Debian Etch 4.0

Estamos seguros no orkut?

Site com pacotes do Slackware

Acessando partições NTFS (read/write) com ntfs-3g (Slackware Linux 12)

Introdução a linguagem Assembly com o MIPS

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts