Y-a-t-il une commande pour nettoyer le cache de pacman, en ne supprimant que les vieilles versions des programmes et qu'il ignore les paquets non installés?
parce que pacman -Sc nettoie les vieux paquets non installés. alors que moi je veux qu'il l'ignore
EDIT:
Code : Tout sélectionner
#!/bin/sh
TEMPORAIRE=/media/HDD120/tmp
PACMAN_CACHE=/media/HDD120/pkg
mkdir $TEMPORAIRE
#\1 nom
#\2 version
#\3 release
#\5 architecture
SED_PKG='\(.*\)-\(.*\)-\([0-9]\+\)\(-\(i686\|x86_64\|any\)\)\{0,1\}\.pkg\.tar\..*$'
cd "$PACMAN_CACHE"
ls | sed "s/$SED_PKG/\\1/" | uniq -c \
| sort -nr | grep -v '^ *1 ' | \
while read num pkg
do
lastver="0"
for version in $(ls "$pkg"* | grep "$pkg-\([^-]*\)-\([0-9]\+\)\(-\(i686\|x86_64\|any\)\)\{0,1\}\.pkg\.tar\..*$" | sed "s/$SED_PKG/\\2-\\3/")
do
ret=$(vercmp "$lastver" "$version")
[ $ret -lt 0 ] && lastver="$version"
done
condemned=$(ls "$pkg"* | grep "$pkg-\([^-]*\)-\([0-9]\+\)\(-\(i686\|x86_64\|any\)\)\{0,1\}\.pkg\.tar\..*$" | grep -Fv "$lastver")
mv $condemned $TEMPORAIRE
done
Code : Tout sélectionner
yaourt -S repo-clean