Arch Linux - Limpeza de pacotes

Publicado por edps em 02/04/2012

[ Hits: 35.313 ]

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

MUPDF, Leitor de PDFs leve

screenFetch - The Bash Screenshot Information Tool

Autenticação de repositórios em distros Debian-like

Arch Wiki Lite

Notas sobre o Debian e Debian Multimedia

Leitura recomendada

Instalando Unreal Tournament GOTY nativamente no GNU/Linux

VPN em ISA Server 2000 com Ubuntu 9.10 64 bits

Instalando o PostgreSQL 8.1 + script para inicialização

Adeus Beryl! Compiz-Fusion nova geração

Logical Volume Manager - LVM (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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts