|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
Nettoyer un répertoire plein de .deb ?Bonjour,
es-ce qu'il existe une commande rapide et efficace pour faire le ménage dans un dossier plein de paquets .deb pour ne garder que ceux dont les numéros de versions sont les plus récents ? Par exemple j'ai package_1.2.0-0_i386.deb package_1.2.0-1_i386.deb package_1.3.1-0_i386.deb package_1.3.4-6_i386.deb package_1.3.4-7_i386.deb et je ne veux garder que le dernier ... y a ça, sans se lancer dans des outils de gestion de dépots ? Merci d'avance, Éric -- -- ABULEDU A 10 ANS ... www.abuledu.org -- Éric Seigne - Directeur | eric.seigne@... RyXéo SARL | http://www.ryxeo.com 21 avenue M. et E. Dulout | tel +33 6 987 444 01 33600 Pessac - FRANCE | fax +33 9 56 606 607 -- To UNSUBSCRIBE, email to debian-devel-french-REQUEST@... with a subject of "unsubscribe". Trouble? Contact listmaster@... |
|
|
Re: Nettoyer un répertoire plein de .deb ?Éric Seigne <eric.seigne@...> (03/08/2009):
> package_1.2.0-0_i386.deb > package_1.2.0-1_i386.deb > package_1.3.1-0_i386.deb > package_1.3.4-6_i386.deb > package_1.3.4-7_i386.deb > > et je ne veux garder que le dernier ... y a ça, sans se lancer dans des > outils de gestion de dépots ? Shell ? for awk/sed dpkg ? Mraw, KiBi. |
|
|
Re: Nettoyer un répertoire plein de .deb ?On Mon, Aug 03, 2009 at 04:02:43PM +0200, Éric Seigne wrote:
> Bonjour, > es-ce qu'il existe une commande rapide et efficace pour faire le > ménage dans un dossier plein de paquets .deb pour ne garder que ceux > dont les numéros de versions sont les plus récents ? > > Par exemple j'ai > > package_1.2.0-0_i386.deb > package_1.2.0-1_i386.deb > package_1.3.1-0_i386.deb > package_1.3.4-6_i386.deb > package_1.3.4-7_i386.deb > > et je ne veux garder que le dernier ... y a ça, sans se lancer dans > des outils de gestion de dépots ? > > Merci d'avance, > Éric dry_run= doit() { $dry_run "$@" } while test $# != 0; do case "$1" in -n) dry_run=echo ;; --) shift; break; ;; *) break ;; esac shift done if test $# != 1; then echo "usage: foo.sh <directory>" 2>&1 exit 1 fi cd "$1" for p in $(ls *.deb|sed -e 's/_.*//'|sort -u); do keep= for v in $(ls "${p}_"*".deb" | sed -e 's/^[^_]*_\([^_]*\)_[^_]*\.deb$/\1/'); do if test -z "$keep"; then keep=$v elif dpkg --compare-versions "$keep" gt "$v"; then doit rm -f "${p}_${v}_*.deb" else doit rm -f "${p}_${keep}_*.deb" keep=$v fi done done -- Intersec <http://www.intersec.com> Pierre Habouzit <pierre.habouzit@...> Tél : +33 (0)1 5570 3346 Mob : +33 (0)6 1636 8131 Fax : +33 (0)1 5570 3332 37 Rue Pierre Lhomme 92400 Courbevoie |
|
|
Re: Nettoyer un répertoire plein de .deb ?On Mon, Aug 03, 2009 at 09:56:00PM +0200, Pierre Habouzit wrote:
> On Mon, Aug 03, 2009 at 04:02:43PM +0200, Éric Seigne wrote: > > Bonjour, > > es-ce qu'il existe une commande rapide et efficace pour faire le > > ménage dans un dossier plein de paquets .deb pour ne garder que ceux > > dont les numéros de versions sont les plus récents ? > > > > Par exemple j'ai > > > > package_1.2.0-0_i386.deb > > package_1.2.0-1_i386.deb > > package_1.3.1-0_i386.deb > > package_1.3.4-6_i386.deb > > package_1.3.4-7_i386.deb > > > > et je ne veux garder que le dernier ... y a ça, sans se lancer dans > > des outils de gestion de dépots ? > > > > Merci d'avance, > > Éric file-name contient l'époch ce qui est généralement faux... Le fix suivant devrait corriger ça: #!/bin/sh dry_run= doit() { $dry_run "$@" } while test $# != 0; do case "$1" in -n) dry_run=echo ;; --) shift; break; ;; *) break ;; esac shift done if test $# != 1; then echo "usage: foo.sh <directory>" 2>&1 exit 1 fi cd "$1" for p in $(ls *.deb|sed -e 's/_.*//'|sort -u); do keep= + keep_v= for v in $(ls "${p}_"*".deb" | sed -e 's/^[^_]*_\([^_]*\)_[^_]*\.deb$/\1/'); do + ver=$(dpkg --info binutils-dev_2.19.51.20090704-1_amd64.deb|sed -ne '/Version: /{s/ *Version: *//p;q}') if test -z "$keep"; then keep=$v + keep_v=$ver - elif dpkg --compare-versions "$keep" gt "$v"; then + elif dpkg --compare-versions "$keep_v" gt "$ver"; then doit rm -f "${p}_${v}_*.deb" else doit rm -f "${p}_${keep}_*.deb" keep=$v + keep_v=$ver fi done done Et sinon la bonne manière est d'utiliser dpkg --info et de prendre le Package: et Version:, de trier pour chaque Package: unique par ordre de Version: selon dpkg --compare-versions, et de ne conserver que le dernier de chaque. Je pense que dpkg --compare-versions est accessible depuis perl-apt (si ça existe) et je suis sur que c'est accessible depuis python-apt pour l'utiliser dans apt-listchanges. Mais j'ai la flemme d'écrire le script en question. -- Intersec <http://www.intersec.com> Pierre Habouzit <pierre.habouzit@...> Tél : +33 (0)1 5570 3346 Mob : +33 (0)6 1636 8131 Fax : +33 (0)1 5570 3332 37 Rue Pierre Lhomme 92400 Courbevoie |
|
|
Re: Nettoyer un répertoire plein de .deb ?On Mon, Aug 03, 2009, Éric Seigne wrote:
> et je ne veux garder que le dernier ... y a ça, sans se lancer dans des > outils de gestion de dépots ? vidir -- Mohammed Adnène Trojette -- To UNSUBSCRIBE, email to debian-devel-french-REQUEST@... with a subject of "unsubscribe". Trouble? Contact listmaster@... |
| Free embeddable forum powered by Nabble | Forum Help |