Page 2 sur 2

Re: [yaourt] nettoyage mais... (en cours)

Publié : sam. 19 sept. 2009, 15:46
par tuxce
un essai, ça prend que les fichiers ayant un nom en double, détecte la version la plus récente et supprime ceux qui l'ont pas.

Code : Tout sélectionner

#!/bin/sh

PACMAN_CACHE=/var/cache/pacman/pkg/
#\1 nom
#\2 version
#\3 release
#\5 architecture
SED_PKG='\(.*\)-\(.*\)-\([0-9]\+\)\(-\(i686\|x86_64\)\)\{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"* | sed "s/$SED_PKG/\\2-\\3/")
	do
		ret=$(vercmp "$lastver" "$version")
		[ $ret -lt 0 ] && lastver="$version"
	done
	condemned=$(ls "$pkg"* | grep -Fv "$lastver")
	rm -v $condemned
done
bon par contre, ça suppose qu'il n'y a que des paquets là dedans.

Re: [yaourt] nettoyage mais... (en cours)

Publié : sam. 19 sept. 2009, 17:36
par wido
le souci c'est que pour les noms en double comme:

Code : Tout sélectionner

bin32-winetricks-20090705-1-x86_64.pkg.tar.gz
bin32-wine-1.1.29-1-x86_64.pkg.tar.gz
bin32-wine-1.1.26-1-x86_64.pkg.tar.gz
il ne m'a gardé que bin32-winetricks-20090705-1-x86_64.pkg.tar.gz
c'est la même chose pour les fichier kernel26 et kernel26-firmware


par contre les noms simples comme git,conky,... nickel rien à redire :wink:

voici ce qui reste:

Code : Tout sélectionner

acct-6.3.2-2-x86_64.pkg.tar.gz
acetoneiso2-2.1-1-x86_64.pkg.tar.gz
alsa-lib-1.0.21.a-1-x86_64.pkg.tar.gz
alsa-utils-1.0.21-1-x86_64.pkg.tar.gz
apr-util-1.3.9-2-x86_64.pkg.tar.gz
bin32-winetricks-20090705-1-x86_64.pkg.tar.gz
bootchart-0.9-5-x86_64.pkg.tar.gz
bwidget-1.9.0-1-any.pkg.tar.gz
cdrdao-1.2.3rc2-1-x86_64.pkg.tar.gz
chkrootkit-0.49-1-x86_64.pkg.tar.gz
cloog-ppl-0.15.7-1-x86_64.pkg.tar.gz
cmake-2.6.4-3-x86_64.pkg.tar.gz
conky-1.7.2-1-x86_64.pkg.tar.gz
coreutils-7.6-1-x86_64.pkg.tar.gz
curl-7.19.6-1-x86_64.pkg.tar.gz
cvs-1.11.23-3-x86_64.pkg.tar.gz
damageproto-1.2.0-1-any.pkg.tar.gz
db4.1-4.1.25-3-x86_64.pkg.tar.gz
dbus-1.2.16-1-x86_64.pkg.tar.gz
dbus-core-1.2.16-1-x86_64.pkg.tar.gz
dhcpcd-5.1.0-1-x86_64.pkg.tar.gz
dmxproto-2.2.99.1-1-any.pkg.tar.gz
e2fsprogs-1.41.9-1-x86_64.pkg.tar.gz
enca-1.10-1-x86_64.pkg.tar.gz
enchant-1.5.0-1-x86_64.pkg.tar.gz
ethtool-6-2-x86_64.pkg.tar.gz
exo-0.3.102-1-x86_64.pkg.tar.gz
fakeroot-1.13-1-x86_64.pkg.tar.gz
fftw-3.2.2-1-x86_64.pkg.tar.gz
filezilla-3.2.7.1-1-x86_64.pkg.tar.gz
firefox-3.5.3-1-x86_64.pkg.tar.gz
firefox-fr-3.5.3-1.pkg.tar.bz2
font-bitstream-speedo-1.0.0-5-any.pkg.tar.gz
fontsproto-2.1.0-1-any.pkg.tar.gz
fortune-mod-chucknorris-fr-20090824-1-x86_64.pkg.tar.gz
freeglut-2.4.0-4-x86_64.pkg.tar.gz
fuse-2.8.0-1-x86_64.pkg.tar.gz
gamin-0.1.10-1.pkg.tar.gz
gconf-2.26.2-3-x86_64.pkg.tar.gz
ghc-6.10.4-1-x86_64.pkg.tar.gz.part
ghostscript-8.70-2-x86_64.pkg.tar.gz
giblib-1.2.4-4-x86_64.pkg.tar.gz
gimp-2.6.6-3-x86_64.pkg.tar.gz
git-1.6.4.4-1-x86_64.pkg.tar.gz
glibc-2.10.1-4-x86_64.pkg.tar.gz
gnome-mime-data-2.18.0-4-any.pkg.tar.gz
gnupg2-2.0.13-2-x86_64.pkg.tar.gz
gnutls-2.8.3-1-x86_64.pkg.tar.gz
gparted-0.4.6-2-x86_64.pkg.tar.gz
gstreamer0.10-0.10.24-1-x86_64.pkg.tar.gz
gstreamer0.10-bad-0.10.14-1-x86_64.pkg.tar.gz
gstreamer0.10-bad-plugins-0.10.14-1-x86_64.pkg.tar.gz
gstreamer0.10-base-0.10.24-1-x86_64.pkg.tar.gz
gstreamer0.10-base-plugins-0.10.24-1-x86_64.pkg.tar.gz
gstreamer0.10-ffmpeg-0.10.8-1-x86_64.pkg.tar.gz
gstreamer0.10-ugly-0.10.12-1-x86_64.pkg.tar.gz
gstreamer0.10-ugly-plugins-0.10.12-1-x86_64.pkg.tar.gz
gtkglext-1.2.0-2-x86_64.pkg.tar.gz
gvim-7.2.245-1-x86_64.pkg.tar.gz
hal-info-0.20090716-2-any.pkg.tar.gz
hd2u-1.0.3-1-x86_64.pkg.tar.gz
hdparm-9.27-1-x86_64.pkg.tar.gz
httrack-3.43.5-1-x86_64.pkg.tar.gz
human-icon-theme-0.33.6ubuntu2-2-any.pkg.tar.gz
human-icon-theme-0.34-1-any.pkg.tar.gz
human-icon-theme-0.35-1-any.pkg.tar.gz
imagemagick-6.5.5.6-1-x86_64.pkg.tar.gz
initscripts-2009.08-1-x86_64.pkg.tar.gz
inputproto-1.5.1-2-any.pkg.tar.gz
intltool-0.41.0-1-any.pkg.tar.gz
john-1.7.0.2-5-x86_64.pkg.tar.gz
jre-6u16-1-x86_64.pkg.tar.gz
kernel-headers-2.6.30.5-1-x86_64.pkg.tar.gz
kernel26-firmware-git-20090823-1-x86_64.pkg.tar.gz
kernel26-git-20090823-1-x86_64.pkg.tar.gz
lesstif-0.95.0-3-x86_64.pkg.tar.gz
lib32-alsa-lib-1.0.21.a-1-x86_64.pkg.tar.gz
lib32-atk-1.26.0-1.pkg.tar.gz
lib32-cairo-1.8.8-1-x86_64.pkg.tar.gz
lib32-db-4.7.25.4-1.pkg.tar.gz
lib32-e2fsprogs-1.41.8-2.1-x86_64.pkg.tar.gz
lib32-expat-2.0.1-2.pkg.tar.gz
lib32-fontconfig-2.6.0-2.pkg.tar.gz
lib32-glibc-2.10.1-4-x86_64.pkg.tar.gz
lib32-gnutls-2.8.3-1-x86_64.pkg.tar.gz
lib32-gtk2-2.16.5-1-x86_64.pkg.tar.gz
lib32-heimdal-1.2.1-5-x86_64.pkg.tar.gz
lib32-libcups-1.3.11-1-x86_64.pkg.tar.gz
lib32-libdrm-2.4.13-1-x86_64.pkg.tar.gz
lib32-libgcrypt-1.4.4-2-x86_64.pkg.tar.gz
lib32-libgpg-error-1.6-1.1.pkg.tar.gz
lib32-libice-1.0.6-1-x86_64.pkg.tar.gz
lib32-libjpeg-7-1-x86_64.pkg.tar.gz
lib32-libpng-1.2.39-1-x86_64.pkg.tar.gz
lib32-libsm-1.1.1-1-x86_64.pkg.tar.gz
lib32-libtasn1-2.2-1.pkg.tar.gz
lib32-libtiff-3.9.1-1-x86_64.pkg.tar.gz
lib32-libxau-1.0.5-1-x86_64.pkg.tar.gz
lib32-libxcursor-1.1.10-1-x86_64.pkg.tar.gz
lib32-libxft-2.1.13-1.pkg.tar.gz
lib32-libxinerama-1.0.99.1-1-x86_64.pkg.tar.gz
lib32-libxml2-2.7.3-3-x86_64.pkg.tar.gz
lib32-libxp-1.0.0-3-x86_64.pkg.tar.gz
lib32-libxslt-1.1.24-2.pkg.tar.gz
lib32-libxt-1.0.6-1-x86_64.pkg.tar.gz
lib32-libxxf86vm-1.0.99.1-1-x86_64.pkg.tar.gz
lib32-lzo2-2.03-1.pkg.tar.gz
lib32-mesa-7.5.1-2-x86_64.pkg.tar.gz
lib32-ncurses-5.7-2.pkg.tar.gz
lib32-opencdk-0.6.6-1.1.pkg.tar.gz
lib32-openssl-0.9.8k-4-x86_64.pkg.tar.gz
lib32-pango-1.24.5-1.1-x86_64.pkg.tar.gz
lib32-pixman-0.16.0-1-x86_64.pkg.tar.gz
lib32-printproto-1.0.4-1-x86_64.pkg.tar.gz
lib32-readline-6.0.004-1-x86_64.pkg.tar.gz
lib32-sqlite3-3.6.17-1-x86_64.pkg.tar.gz
lib32-util-linux-ng-2.16-1-x86_64.pkg.tar.gz
lib32-xcb-util-0.3.6-1-x86_64.pkg.tar.gz
libarchive-2.7.1-1-x86_64.pkg.tar.gz
libass-0.9.6-2.1-x86_64.pkg.tar.gz
libburn-0.7.0.pl00-1-x86_64.pkg.tar.gz
libcups-1.4.0-2-x86_64.pkg.tar.gz
libdca-0.0.5-2-x86_64.pkg.tar.gz
libdmx-1.0.99.1-1-x86_64.pkg.tar.gz
libdrm-2.4.13-1-x86_64.pkg.tar.gz
libdvdcss-1.2.10-1-x86_64.pkg.tar.gz
libdvdnav-4.1.3-1-x86_64.pkg.tar.gz
libdvdread-4.1.3-1-x86_64.pkg.tar.gz
libfetch-2.25-1-x86_64.pkg.tar.gz
libfontenc-1.0.5-1-x86_64.pkg.tar.gz
libice-1.0.6-1-x86_64.pkg.tar.gz
libisofs-0.6.22-1-x86_64.pkg.tar.gz
libldap-2.4.18-1-x86_64.pkg.tar.gz
libmysqlclient-5.1.38-1-x86_64.pkg.tar.gz
libofa-0.9.3-2-x86_64.pkg.tar.gz
libogg-1.1.4-1-x86_64.pkg.tar.gz
libpciaccess-0.10.8-1-x86_64.pkg.tar.gz
libpng-1.2.39-1-x86_64.pkg.tar.gz
libsm-1.1.1-1-x86_64.pkg.tar.gz
libtiff-3.9.1-1-x86_64.pkg.tar.gz
libtorrent-0.12.5-1-x86_64.pkg.tar.gz
libunique-1.0.8-1-x86_64.pkg.tar.gz
libvorbis-1.2.3-1-x86_64.pkg.tar.gz
libxau-1.0.5-1-x86_64.pkg.tar.gz
libxcursor-1.1.10-1-x86_64.pkg.tar.gz
libxinerama-1.0.99.1-1-x86_64.pkg.tar.gz
libxml2-2.7.3-3-x86_64.pkg.tar.gz
libxp-1.0.0-3-x86_64.pkg.tar.gz
libxpm-3.5.7-2-x86_64.pkg.tar.gz
libxss-1.2.0-1-x86_64.pkg.tar.gz
libxxf86dga-1.0.99.1-1-x86_64.pkg.tar.gz
libxxf86vm-1.0.99.1-1-x86_64.pkg.tar.gz
lshw-B.02.14-1.pkg.tar.gz
lynx-2.8.7-1-x86_64.pkg.tar.gz
man-db-2.5.6-1-x86_64.pkg.tar.gz
meld-1.3.1-1-x86_64.pkg.tar.gz
mesa-7.5.1-2-x86_64.pkg.tar.gz
module-init-tools-3.10-1-x86_64.pkg.tar.gz
mpc-0.17-1-x86_64.pkg.tar.gz
mpd-0.15.2-1-x86_64.pkg.tar.gz
mtools-4.0.10-5-x86_64.pkg.tar.gz
murrine-themes-collection-20090906-1-any.pkg.tar.gz
neon-0.28.6-1-x86_64.pkg.tar.gz
nss-3.12.4-1-x86_64.pkg.tar.gz
ntp-4.2.4p7-3-x86_64.pkg.tar.gz
openntpd-3.9p1-7.pkg.tar.gz
openoffice-base-3.1.1-1-x86_64.pkg.tar.gz
openoffice-fr-3.1.1-1-any.pkg.tar.gz
openssh-5.2p1-1-x86_64.pkg.tar.gz
pacman-3.3.0-3-x86_64.pkg.tar.gz
pciutils-3.1.4-1-x86_64.pkg.tar.gz
perl-error-0.17015-1-x86_64.pkg.tar.gz
perl-locale-gettext-1.05-4-x86_64.pkg.tar.gz
perlxml-2.36-2-x86_64.pkg.tar.gz
physfs-2.0.0-2-x86_64.pkg.tar.gz
pidgin-2.6.1-1-x86_64.pkg.tar.gz
pixman-0.16.0-1-x86_64.pkg.tar.gz
playonlinux-3.6-1-x86_64.pkg.tar.gz
postgresql-libs-8.4.1-1-x86_64.pkg.tar.gz
printproto-1.0.4-1-x86_64.pkg.tar.gz
psutils-1.17-2-x86_64.pkg.tar.gz
python-lxml-2.2.2-1-x86_64.pkg.tar.gz
python-pycurl-7.19.0-3.pkg.tar.gz
python-simplejson-2.0.9-1.pkg.tar.gz
qsvn-0.8.2-1.pkg.tar.gz
qt-4.5.2-7-x86_64.pkg.tar.gz
rapidsvn-0.10.0-1-x86_64.pkg.tar.gz
raptor-1.4.19-1-x86_64.pkg.tar.gz
rasqal-0.9.16-1-x86_64.pkg.tar.gz
realripper-1.1-1-x86_64.pkg.tar.gz
redland-1.0.9-2-x86_64.pkg.tar.gz
rsync-3.0.6-1-x86_64.pkg.tar.gz
rtorrent-0.8.5-1-x86_64.pkg.tar.gz
scite-2.01-1-x86_64.pkg.tar.gz
screen-4.0.3-8-x86_64.pkg.tar.gz
scrnsaverproto-1.2.0-1-any.pkg.tar.gz
scrot-0.8-3-x86_64.pkg.tar.gz
sdl_net-1.2.7-3-x86_64.pkg.tar.gz
sdl_perl-2.2.1.8-1-x86_64.pkg.tar.gz
sdl_ttf-2.0.9-2-x86_64.pkg.tar.gz
setuptools-0.6c9-2-x86_64.pkg.tar.gz
smbclient-3.3.7-2-x86_64.pkg.tar.gz
sonata-1.6.2-1-x86_64.pkg.tar.gz
sqlite3-3.6.17-1-x86_64.pkg.tar.gz
streamripper-1.64.6-1-x86_64.pkg.tar.gz
subversion-1.6.5-4-x86_64.pkg.tar.gz
supertuxkart-0.6.2-1-x86_64.pkg.tar.gz
syslog-ng-3.0.4-1-x86_64.pkg.tar.gz
t1lib-5.1.2-2-x86_64.pkg.tar.gz
tcl-8.5.7-1-x86_64.pkg.tar.gz
tcllib-1.11.1-1.pkg.tar.gz
thunar-thumbnailers-0.4.1-3-x86_64.pkg.tar.gz
tk-8.5.7-1-x86_64.pkg.tar.gz
tor-0.2.1.19-1-x86_64.pkg.tar.gz
translator-0.9.6.01-1-x86_64.pkg.tar.gz
transmission-cli-1.74-1-x86_64.pkg.tar.gz
transmission-gtk-1.74-1-x86_64.pkg.tar.gz
ttf-dejavu-2.30-1-any.pkg.tar.gz
tzdata-2009l-1-x86_64.pkg.tar.gz
udev-146-2-x86_64.pkg.tar.gz
unrar-3.9.6-1-x86_64.pkg.tar.gz
usbutils-0.86-2-x86_64.pkg.tar.gz
videoproto-2.3.0-1-any.pkg.tar.gz
vim-7.2.245-1-x86_64.pkg.tar.gz
virtualbox_bin-3.0.6-2.pkg.tar.bz2
wicd-1.6.2.2-1-x86_64.pkg.tar.gz
wireshark-1.2.1-1.1-x86_64.pkg.tar.gz
xcb-util-0.3.6-1-x86_64.pkg.tar.gz
xcursor-archcursorblue-0.0.2-2.pkg.tar.gz
xf86-input-evdev-2.2.5-1-x86_64.pkg.tar.gz
xf86dgaproto-2.0.99.1-1-any.pkg.tar.gz
xf86vidmodeproto-2.2.99.1-1-any.pkg.tar.gz
xfce4-clipman-plugin-1.1.0-1-x86_64.pkg.tar.gz
xfce4-notes-plugin-1.7.1-1-x86_64.pkg.tar.gz
xfce4-power-manager-0.8.3.1-1-x86_64.pkg.tar.gz
xfsprogs-3.0.3-1-x86_64.pkg.tar.gz
xineramaproto-1.1.99.1-1-any.pkg.tar.gz
xmlrpc-c-1.06.36-1-x86_64.pkg.tar.gz
xorg-font-utils-7.4-3-x86_64.pkg.tar.gz
xorg-server-utils-7.4-7-x86_64.pkg.tar.gz
xpdf-3.02_pl3-1-x86_64.pkg.tar.gz
xscreensaver-5.10-1-x86_64.pkg.tar.gz
xterm-246-1-x86_64.pkg.tar.gz
xulrunner-1.9.1.3-1-x86_64.pkg.tar.gz
xz-utils-4.999.9beta-1-x86_64.pkg.tar.gz
yaourt-0.9.2.6-1.pkg.tar.bz2
et ce qui a été effacé (déplacer :) )

Code : Tout sélectionner

acetoneiso2-2.0.3.2-1-x86_64.pkg.tar.gz
acetoneiso2-2.0.4-1-x86_64.pkg.tar.gz
alsa-lib-1.0.21-1-x86_64.pkg.tar.gz
apr-1.3.8-1-x86_64.pkg.tar.gz
apr-1.3.8-2-x86_64.pkg.tar.gz
apr-util-1.3.9-1-x86_64.pkg.tar.gz
bin32-wine-1.1.26-1-x86_64.pkg.tar.gz
bin32-wine-1.1.29-1-x86_64.pkg.tar.gz
cmake-2.6.4-2-x86_64.pkg.tar.gz
coreutils-7.5-1-x86_64.pkg.tar.gz
coreutils-7.5-2-x86_64.pkg.tar.gz
dhcpcd-5.0.7-1-x86_64.pkg.tar.gz
exo-0.3.101-2-x86_64.pkg.tar.gz
fftw-3.2.1-1-x86_64.pkg.tar.gz
firefox-fr-3.5.2-1-x86_64.pkg.tar.bz2
git-1.6.4-1-x86_64.pkg.tar.gz
git-1.6.4.1-1-x86_64.pkg.tar.gz
git-1.6.4.2-1-x86_64.pkg.tar.gz
git-1.6.4.3-1-x86_64.pkg.tar.gz
gnupg2-2.0.13-1-x86_64.pkg.tar.gz
gparted-0.4.6-1-x86_64.pkg.tar.gz
gstreamer0.10-bad-0.10.13-1-x86_64.pkg.tar.gz
gstreamer0.10-bad-plugins-0.10.13-1-x86_64.pkg.tar.gz
hdparm-9.22-1-x86_64.pkg.tar.gz
hdparm-9.22-2-x86_64.pkg.tar.gz
hdparm-9.26-1-x86_64.pkg.tar.gz
imagemagick-6.5.4.8-1-x86_64.pkg.tar.gz
kernel26-2.6.30.5-1-x86_64.pkg.tar.gz
kernel26-2.6.30.6-1-x86_64.pkg.tar.gz
kernel26-2.6.31-1-x86_64.pkg.tar.gz
kernel26-firmware-2.6.30-1-x86_64.pkg.tar.gz
kernel26-firmware-2.6.31-1-x86_64.pkg.tar.gz
lib32-alsa-lib-1.0.20-1.pkg.tar.gz
lib32-alsa-lib-1.0.21-1-x86_64.pkg.tar.gz
lib32-libtiff-3.9.0-1-x86_64.pkg.tar.gz
lib32-libxcursor-1.1.9-2.pkg.tar.gz
lib32-libxinerama-1.0.3-2.pkg.tar.gz
lib32-mesa-7.5-2-x86_64.pkg.tar.gz
lib32-pixman-0.14.0-2.pkg.tar.gz
libcups-1.4.0-1-x86_64.pkg.tar.gz
libldap-2.3.43-3-x86_64.pkg.tar.gz
libtiff-3.8.2-6-x86_64.pkg.tar.gz
libtiff-3.9.0-1-x86_64.pkg.tar.gz
meld-1.3.0-2-x86_64.pkg.tar.gz
mesa-7.5.1-1-x86_64.pkg.tar.gz
openoffice-base-3.1.0.99-1-x86_64.pkg.tar.gz
qt-4.5.2-6-x86_64.pkg.tar.gz
redland-1.0.9-1-x86_64.pkg.tar.gz
scite-1.79-1.pkg.tar.gz
subversion-1.6.4-2-x86_64.pkg.tar.gz
subversion-1.6.5-3-x86_64.pkg.tar.gz
syslog-ng-3.0.3-3-x86_64.pkg.tar.gz
udev-146-1-x86_64.pkg.tar.gz
usbutils-0.86-1-x86_64.pkg.tar.gz
virtualbox_bin-3.0.4-1-x86_64.pkg.tar.bz2
virtualbox_bin-3.0.6-1.pkg.tar.bz2
xf86-input-evdev-2.2.4-1-x86_64.pkg.tar.gz
xmlrpc-c-1.06.35-1-x86_64.pkg.tar.gz
xorg-server-1.6.3-3-x86_64.pkg.tar.gz
xorg-server-1.6.3-4-x86_64.pkg.tar.gz
xorg-server-1.6.3.901-1-x86_64.pkg.tar.gz
xscreensaver-5.09-1-x86_64.pkg.tar.gz
xterm-245-1-x86_64.pkg.tar.gz

Re: [yaourt] nettoyage mais... (en cours)

Publié : sam. 19 sept. 2009, 18:13
par Abazigal
Ouais, je vois le soucis:

Code : Tout sélectionner

for version in $(ls "$pkg"* | sed "s/$SED_PKG/\\2-\\3/")
Quand il arrive à cette ligne, pkg vaut "bin32-wine" par exemple, mais à cause de l'étoile, ls renvoie aussi "bin32-winetricks"; ce qui fait qu'au lieu de comparer "1.1.29-1" et "1.1.26-1", il compare "1.1.29-1", "1.1.26-1" et "20090705-1".

Comme c'est "20090705-1" qui 'gagne', le ls plus bas rempli "condamned" avec tout ce qui ne contient pas "20090705-1" dans "bin32-winetricks-20090705-1-x86_64.pkg.tar.gz", "bin32-wine-1.1.29-1-x86_64.pkg.tar.gz" et "bin32-wine-1.1.26-1-x86_64.pkg.tar.gz", c'est à dire "bin32-wine-1.1.29-1-x86_64.pkg.tar.gz" et "bin32-wine-1.1.26-1-x86_64.pkg.tar.gz". Du coup, les 2 "bin32-wine" sont virés.

Ha, tiens, c'est pas très clair, comme explication :?


Pour contourner le problème, il suffirait de réappliquer la grosse regexp du début, en remplacant le champ 1 par $pkg;
en gros, dans le script, remplacer

Code : Tout sélectionner

for version in $(ls "$pkg"* | sed "s/$SED_PKG/\\2-\\3/")
par

Code : Tout sélectionner

for version in $(ls "$pkg"* | grep "$pkg-\(.*\)-\([0-9]\+\)\(-\(i686\|x86_64\)\)\{0,1\}\.pkg\.tar\..*$" | sed "s/$SED_PKG/\\2-\\3/")
et

Code : Tout sélectionner

condemned=$(ls "$pkg"* | grep -Fv "$lastver")
par

Code : Tout sélectionner

condemned=$(ls "$pkg"* | grep "$pkg-\(.*\)-\([0-9]\+\)\(-\(i686\|x86_64\)\)\{0,1\}\.pkg\.tar\..*$" | grep -Fv "$lastver")
À confirmer / infirmer / optimiser ... :wink:

Re: [yaourt] nettoyage mais... (en cours)

Publié : sam. 19 sept. 2009, 18:53
par wido
pour les problèmes de bin32-wine , c'est corrigés, il ne reste plus que le souci avec les noms kernel26

Code : Tout sélectionner

kernel-headers-2.6.30.5-1-x86_64.pkg.tar.gz
kernel26-firmware-git-20090823-1-x86_64.pkg.tar.gz
kernel26-git-20090823-1-x86_64.pkg.tar.gz
kernel26-2.6.30.5-1-x86_64.pkg.tar.gz
kernel26-2.6.30.6-1-x86_64.pkg.tar.gz
kernel26-2.6.31-1-x86_64.pkg.tar.gz
kernel26-firmware-2.6.30-1-x86_64.pkg.tar.gz
kernel26-firmware-2.6.31-1-x86_64.pkg.tar.gz
le script modifié m'a effacé:

Code : Tout sélectionner

kernel26-2.6.30.5-1-x86_64.pkg.tar.gz
kernel26-2.6.30.6-1-x86_64.pkg.tar.gz
kernel26-2.6.31-1-x86_64.pkg.tar.gz
kernel26-firmware-2.6.30-1-x86_64.pkg.tar.gz
kernel26-firmware-2.6.31-1-x86_64.pkg.tar.gz
est-ce logique? ou faut-il que je supprime les versions kernel26-firmware-git et kernel26-git pour qu'il me garde ceux qui sont supportées par l'équipe arch?

Re: [yaourt] nettoyage mais... (en cours)

Publié : sam. 19 sept. 2009, 19:12
par Abazigal
Essaye de remplacer

Code : Tout sélectionner

for version in $(ls "$pkg"* | grep "$pkg-\(.*\)-\([0-9]\+\)\(-\(i686\|x86_64\)\)\{0,1\}\.pkg\.tar\..*$" | sed "s/$SED_PKG/\\2-\\3/")
par

Code : Tout sélectionner

for version in $(ls "$pkg"* | grep "$pkg-\([^-]*\)-\([0-9]\+\)\(-\(i686\|x86_64\)\)\{0,1\}\.pkg\.tar\..*$" | sed "s/$SED_PKG/\\2-\\3/")
et

Code : Tout sélectionner

condemned=$(ls "$pkg"* | grep "$pkg-\(.*\)-\([0-9]\+\)\(-\(i686\|x86_64\)\)\{0,1\}\.pkg\.tar\..*$" | grep -Fv "$lastver")
par

Code : Tout sélectionner

condemned=$(ls "$pkg"* | grep "$pkg-\([^-]*\)-\([0-9]\+\)\(-\(i686\|x86_64\)\)\{0,1\}\.pkg\.tar\..*$" | grep -Fv "$lastver")

Re: [yaourt] nettoyage mais... (en cours)

Publié : sam. 19 sept. 2009, 21:20
par wido
j'ai modifié le script pour qu'il analyse aussi les paquets "any"

Code : Tout sélectionner

#!/bin/sh

PACMAN_CACHE=/var/cache/pacman/pkg/
#\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"* | sed "s/$SED_PKG/\\2-\\3/")
   #for version in $(ls "$pkg"* | grep "$pkg-\(.*\)-\([0-9]\+\)\(-\(i686\|x86_64|\)\)\{0,1\}\.pkg\.tar\..*$" | sed "s/$SED_PKG/\\2-\\3/")
   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 -Fv "$lastver")
   #condemned=$(ls "$pkg"* | grep "$pkg-\(.*\)-\([0-9]\+\)\(-\(i686\|x86_64\)\)\{0,1\}\.pkg\.tar\..*$" | grep -Fv "$lastver")
   condemned=$(ls "$pkg"* | grep "$pkg-\([^-]*\)-\([0-9]\+\)\(-\(i686\|x86_64\|any\)\)\{0,1\}\.pkg\.tar\..*$" | grep -Fv "$lastver")
   rm $condemned
   #mv $condemned /var/cache/pacman/backup/
done
et merci les :copain: :D , j'ai gagné pas moins de 500Mo :wink:

Re: [yaourt] nettoyage mais... (résolu)

Publié : sam. 03 oct. 2009, 14:20
par tuxce
il faudrait qu'on lise les doc plus souvent quand même ;)
par hasard, je tombe sur:
man pacman.conf a écrit : 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.
en gros, rajouter:

Code : Tout sélectionner

CleanMethod = KeepCurrent
dans pacman.conf fait ce que tu souhaites.

Re: [yaourt] nettoyage mais... (résolu)

Publié : sam. 17 oct. 2009, 16:22
par wido
j'ai vu ta manip tuxce, ça n'a pas l'air de fonctionner dans un dépôt local.

j'ai une modification à faire concernant le script, je me retrouve avec des fichiers de type:

Code : Tout sélectionner

dbus-python-0.83.0-2-x86_64.pkg.tar.gz
dbus-python-0.83.0-2.1-x86_64.pkg.tar.gz
j'ai essayé ça:

Code : Tout sélectionner

SED_PKG='\(.*\)-\(.*\)-\([0-9]\+\.[0-9]\+\)\(-\(i686\|x86_64\|any\)\)\{0,1\}\.pkg\.tar\..*$'
ça n'a pas l'air de fonctionner

Re: [yaourt][Script] nettoyage dépot local (presque résolu)

Publié : dim. 27 déc. 2009, 00:07
par wido
J'ai trouvé mieux:
repo-clean

Code : Tout sélectionner

dossier=/votredepot
TMP=/votredépotoir

cd $dossier
repo-clean -mm -d $TMP/