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

Annonces, dépannage, évolution du projet yaourt
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

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

Message 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.
Avatar de l’utilisateur
wido
Chu Ko Nu
Messages : 497
Inscription : mar. 21 oct. 2008, 20:59

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

Message 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
Image
Avatar de l’utilisateur
Abazigal
Chu Ko Nu
Messages : 313
Inscription : sam. 26 avr. 2008, 14:45
Localisation : Seine et Marne

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

Message 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:
Si les cons savaient voler, il ferait nuit tout le temps ...
Avatar de l’utilisateur
wido
Chu Ko Nu
Messages : 497
Inscription : mar. 21 oct. 2008, 20:59

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

Message 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?
Image
Avatar de l’utilisateur
Abazigal
Chu Ko Nu
Messages : 313
Inscription : sam. 26 avr. 2008, 14:45
Localisation : Seine et Marne

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

Message 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")
Si les cons savaient voler, il ferait nuit tout le temps ...
Avatar de l’utilisateur
wido
Chu Ko Nu
Messages : 497
Inscription : mar. 21 oct. 2008, 20:59

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

Message 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:
Image
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

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

Message 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.
Avatar de l’utilisateur
wido
Chu Ko Nu
Messages : 497
Inscription : mar. 21 oct. 2008, 20:59

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

Message 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
Image
Avatar de l’utilisateur
wido
Chu Ko Nu
Messages : 497
Inscription : mar. 21 oct. 2008, 20:59

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

Message par wido »

J'ai trouvé mieux:
repo-clean

Code : Tout sélectionner

dossier=/votredepot
TMP=/votredépotoir

cd $dossier
repo-clean -mm -d $TMP/
Image
Répondre