Você não está autenticado.
Arch Linux Brasil está precisando de sua colaboração para realizar o pagamento do domínio e do host, para colaborar, realizar doações via paypal.
Para mais informações: contato at archlinux-br.org.
Não é muito recomendado utilizar os comandos pacman -Sc e pacman -Scc.
Por causa disso existem scripts que gerenciam a remoção de arquivos na pasta cache.
Com os scripts você pode determinar quantas versões do pacote deve ser mantida.
cacheclean - https://wiki.archlinux.org/index.php/CleanCache
paccache do pacman-contrib - https://wiki.archlinux.org/index.php/Pa … lean_cache
Ambos não apagam os arquivos de pacotes desinstalados.
Na página do wiki(Pacman_Tips) tem um comando para mostrar os pacotes e então você pode apagá-los manualmente na pasta /var/cache/pacman/pkg
Because paccache does not remove the cache of uninstalled packages, you can display them with diff from diffutils and then optionally delete each package in the /var/cache/pacman/pkg directory:
pacman -S diff
diff -y <(pacman -Qq) <(ls /var/cache/pacman/pkg/ | sed 's/^\(.*\)-[^-]*-[^-]*-[^-]*$/\1/' | sort -u)If you want to display the output with colors install colordiff:
pacman -S colordiff
colordiff -y <(pacman -Qq) <(ls /var/cache/pacman/pkg/ | sed 's/^\(.*\)-[^-]*-[^-]*-[^-]*$/\1/' | sort -u)
https://wiki.archlinux.org/index.php/Pacman_Tips#Selectively_clean_cache escreveu:Because paccache does not remove the cache of uninstalled packages
I've no idea what this means, but paccache can definitely remove uninstalled packages. Hell, even pacman alone can remove uninstalled packages.
I'm familiar with paccache -- I wrote it. I'm baffled as to why the wiki claims paccache doesn't do what I wrote it to do.
I'll keave falconindy to follow-up paccahce. But this is exactly what "pacman -Sc" does with "CleanMethod = KeepInstalled" (default) in pacman.conf
Conversando com o desenvolvedor do paccache, o script faz o serviço de limpeza de cache dos pacotes desinstalados.
A informação no arch-wiki está errada.
Para isso :
usage: paccache <operation> [options] [targets...]
paccache is a flexible pacman cache cleaning utility, which has numerous
options to help control how much, and what, is deleted from any directory
containing pacman package tarballs.
Operations:
-d perform a dry run, only finding candidate packages.
-m <movedir> move candidate packages to 'movedir'.
-r remove candidate packages.
Options:
-a <arch> scan for 'arch' (default: all architectures).
-c <cachedir> scan 'cachedir' for packages (default: /var/cache/pacman/pkg).
-f apply force to mv(1) and rm(1) operations.
-h display this help message.
-i <pkgs> ignore 'pkgs', which is a comma separated. Alternatively,
specify '-' to read package names from stdin, newline delimited.
-k <num> keep 'num' of each package in 'cachedir' (default: 3).
-u target uninstalled packages.
-v increase verbosity. specify up to 3 times.
-z use null delimiters for candidate names (only with -v and -vv)
O número da opção keep -k deve ser igual a zero e adicione a opção -u.
paccache -dvuk0 - visualiza os arquivos dos pacotes desinstalados
paccache -rvuk0 - remove os arquivos dos pacotes desinstalados
ou
"pacman -Sc" com "CleanMethod = KeepInstalled" no pacman.conf - Não cheguei a testar
Recomendo utilizar o paccache, pois está sempre em desenvolvimento junto com o pacman. Faz parte do pacman-contrib
https://www.archlinux.org/packages/core/x86_64/pacman/
Vou deixar o script limpac aqui
- Suporte Locale LC_MESSAGES - retirado do pacman.mo
#!/bin/bash
# Remove uninstalled files in the folder
# /var/cache/pacman/pkg/
# swatquest
#shopt -s -o nounset
export TEXTDOMAINDIR=/usr/share/locale/
export TEXTDOMAIN=pacman
# Declarações Globais
declare -rx SCRIPT=${0##*/}
declare PASTA="/var/cache/pacman/pkg/"
declare ARQUIVOS=$(basename -a ${PASTA}*| sed '/-[^-]*-[^-]*-[^-]*$/ s///'| grep -Fxv -f <(pacman -Qq)| uniq)
declare VERSION=0.9
# Verificação de requesitos
[[ -z "$BASH" ]] && { printf "$SCRIPT: Please execute this scrip with the bash shell.\n" >&2; exit 192; }
[[ -d "$PASTA" ]] || { printf "$(gettext -e "could not access cache directory %s\n" )\n" "$PASTA" >&2; exit 192; }
[ "$UID" != 0 ] && SU=sudo
ajuda() {
cat << USOAJUDA
$(gettext "usage"):$SCRIPT [$(gettext "options")]
-h | --help : display this help and exit
-v | --version : output version information and exit
-f | --files : list files uninstalled
-r | --remove : remove uninstalled files
-o | --orphans : view and remove orphaned files
-p | --pack : list packages uninstalled
-l | --list : creates two files containing the list aur and repo
USOAJUDA
}
[[ $# -le 0 ]] && { ajuda; exit 0; }
limpar_orfaos() {
declare ORPHAN=$(pacman -Qdtq)
[ -z "$ORPHAN" ] && printf "$(gettext -e " there is nothing to do\n")\n" || $SU pacman -Rscn ${ORPHAN}
}
arquivos() {
if [ -n "$ARQUIVOS" ]; then
declare GREPARQ=$(sed -e ':a;N;$!ba;s/\n/|/g' <(printf "$ARQUIVOS"))
declare -a ACHADOS=($(ls ${PASTA}* | grep -E "[^-]($GREPARQ)-[^-]*-[^-]*-[^-]*$"))
declare -i NUM=${#ACHADOS[*]}
declare CONTA=$(stat -c %s ${ACHADOS[*]} | awk '{ soma += $1 } END { print soma }')
declare TOTAL=$(printf "$CONTA" | awk '{ soma=$1 ; unid[1024]="KiB"; unid[1024^2]="MiB"; unid[1024^3]="GiB"; for (x=1024^3; x>=1024; x/=1024){ if (soma>=x) { printf ("%.2f %s\n",soma/x,unid[x]); break }}if (soma<1024) { printf "%d %s\n",soma,"bytes"} }'| sed '/\./ s//,/')
basename -a ${ACHADOS[*]}
printf "\n%20d %s %s\n" "$NUM" "$(gettext "file(s)")" "[ $TOTAL ]"
else
printf "$(gettext -e " there is nothing to do\n")\n"
fi
}
remove() {
if [ -n "$ARQUIVOS" ]; then
declare GREPARQ=$(sed -e ':a;N;$!ba;s/\n/|/g' <(printf "$ARQUIVOS"))
declare -a ACHADOS=($(ls ${PASTA}* | grep -E "[^-]($GREPARQ)-[^-]*-[^-]*-[^-]*$"))
$SU rm -rf ${ACHADOS[*]}
basename -a ${ACHADOS[*]} | xargs -n 1 printf "%s %s\n" "$(gettext "removing")"
else
printf "$(gettext -e " there is nothing to do\n")\n"
fi
}
pacotes() {
[[ -n "$ARQUIVOS" ]] && printf "%s\n" "$ARQUIVOS" || printf "$(gettext -e " there is nothing to do\n")\n"
}
lista() {
declare AUR=$(pacman -Qqm)
pacman -Qq |grep -Fxv "$AUR" > ~/pglistrepo
printf "$AUR" > ~/pkglistaur
printf "$(gettext -e "Backup Files:\n") pkglistaur | pkglistaur ($HOME)\n"
}
while [ $# -gt 0 ]; do
case "$1" in
-f | --files ) arquivos;;
-r | --remove ) remove;;
-p | --pack ) pacotes;;
-o | --orphans) limpar_orfaos;;
-l | --list ) lista;;
-h | --help ) ajuda; exit 0;;
-v | --version ) printf "%s\n" "$SCRIPT-$VERSION"; exit 0;;
* ) ajuda; printf "%s %s\n" "$(gettext "Unknown")" ": $1"; break;;
esac
shift
done
exit 0
Última edição por swatquest (15/01/2013 17:23:44)
Offline
Valeu!
Sugestões e correções serão bem-vindas.
Offline
O comando não estava encontrando todos os programas desinstalados.
Alvos (7): exempi-2.2.0-1 gnome-desktop-1:3.6.2-1 gtksourceview3-3.6.1-1
libpeas-1.6.1-1 gedit-3.6.2-2 nautilus-3.6.3-1 slim-1.3.4-4
Não tinha sido encontrado o gtksourceview3 como mostra na imagem
0.1
Versão 0.2
- Fixado erro na busca por programas desinstalados.
- Adicionado versão do pacote
Última edição por swatquest (16/12/2012 20:16:37)
Offline
versão 0.3
- removido sort -u
- removido o caminho dos arquivos, agora só mostra o nome do arquivo em localizar e apagar
- modificado printf para echo
Última edição por swatquest (02/01/2013 01:29:15)
Offline
Muito bom!
Se copiarem, forneçam a fonte de origem. Se alguma resposta te ajudou a solucionar o problema, por favor edite o título do tópico e adicione "[Resolvido]" a ele (sem as aspas). Obrigado!
Offline
versão 0.4
- Adicionado busca e limpeza de arquivos órfãos ( opção -o) . O próprio pacman mostra os arquivos que serão desinstalados.
Última edição por swatquest (18/12/2012 23:38:13)
Offline
versão 0.4
- Adicionado busca e limpeza de arquivos órfãos ( opção -o) . O próprio pacman mostra os arquivos que serão desinstalados.
Mandei um email pra você, no ig.com.br!
Se copiarem, forneçam a fonte de origem. Se alguma resposta te ajudou a solucionar o problema, por favor edite o título do tópico e adicione "[Resolvido]" a ele (sem as aspas). Obrigado!
Offline
Versão 0.5
- Versão otimizada
- Consertado alguns erros
- Consertado erros críticos na busca de arquivos e remoção
- Adicionado informações de quantidade e tamanho na procura de arquivos
- Adicionado um gerador de 2 arquivos com a lista repo e aur em ~/
Erros crítico na busca - imagens da versão 0.4 e 0.5
Foi removido o gsreamer com o comando pacman -Rscndd gstreamer
Otimização
Executei um makepkg -sc para instalar o libreoffice-gnome. Ele 33 arquivos e então cancelei.
Passei limpac -o e ele removeu os 33 arquivos.
Comando limpac -f
Execução terminada: 33 arquivo(s) (Tamanho total: 37.70MiB)
versão 0.4
real 0m0.287s
user 0m0.289s
sys 0m0.058s
versão 0.5
real 0m0.065s
user 0m0.058s
sys 0m0.008s
Última edição por swatquest (27/12/2012 02:06:08)
Offline
versão 0.6
- modificado algumas opções nas declarações
ex
declare -i
declare -r
Última edição por swatquest (29/12/2012 20:02:45)
Offline
versão 0.7
- verifica se a pasta /var/cache/pacman/pkg/ existe
- corrigido um erro de texto em ajuda --file para --files
- modificado human-readable
- a variável ACHADOS agora é uma array
Última edição por swatquest (02/01/2013 01:37:44)
Offline
versão 0.8
-fixado saida da verficação da pasta
- modificado a exibição da versão.
- a saida do total substitui o ponto por vírgula .
Última edição por swatquest (07/01/2013 00:44:56)
Offline
swatquest, tenho uma sugestão, não sei se vai gostar.
não seria melhor criar um projeto no github, ou gitorious ?
ao meu ver usar GIT ficária mais fácil.
espero que goste
Offline
valeu..
vou ver o github, mas não devo fazer grandes modificações.
Offline
Não há necessidade do script limpac
O próprio paccache já faz o serviço de limpeza de pacote desinstalados
Offline