Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] Nettoyer les distfiles et les packages avec eclean
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Thu Sep 15, 2005 2:39 pm    Post subject: [HOWTO] Nettoyer les distfiles et les packages avec eclean Reply with quote

Introduction

Je n'apprendrai rien à personne en vous disant que le répertoire /usr/portage/distfiles, où emerge télécharge les sources de vos paquets, à une facheuse tendance à enfler considérablement avec le temps. Même chose pour /usr/portage/packages, où emerge stock les paquets binaires, pour les utilisateurs des FEATURES flags "buildpkg" ou "buildsyspkg". C'est un petit désagrément vieux comme Gentoo...

Seulement voilà, le nettoyage de ses répertoire ne peut pas raisonnablement être fait à coup de "rm -rf", parcequ'il serait dommage d'effacer par exemple les sources du dernier Xorg quand on est susceptible d'en avoir besoin le lendemain pour une nouvelle révision (-rX) de l'ebuild. N'oublions pas que quand on re-télécharge un fichier, on abuse de la bande passante des mirroirs, qui n'est pas gratuite et donc difficile à obtenir pour Gentoo. De même pour les paquets binaires, on peut avoir envie de faire du ménage sans pour autant supprimer celui de sauvegarde de notre GCC, qui peut si bien dépanner parfois.

Pour faire ce ménage de façon plus parcimonieuse, il existe depuis longtemps de nombreux scripts officieux, écrits par des utilisateurs : on en trouve plein ici pour les distfiles, ou encore yacleaner qui s'occupe aussi des paquets binaires, et puis plein d'autres qui trainent ici et là et que j'ai oublié. Mais il n'y en avait jusque alors aucun d'officiel... jusqu'à l'intégration récemment de eclean dans gentoolkit-0.2.1_pre6. C'est celui là que je vais un peu vous présenter, parce que pour l'avoir écrit je le connais bien, et puis parce que c'est le meilleurs d'abord, nah. :P


Installation

Rien de bien compliqué pour l'installation, maintenant que la bête est incluse dans gentoolkit. Si vous êtes en ~arch, vérifiez juste que avez bien gentoolkit-0.2.1_pre7 (la version de la _pre6 ne fonctionnant pas avec portage-2.0.52). Si vous êtes en stable, alors votre gentoolkit doit encore en être à la 0.2.0... N'hésitez pas à passez ce paquet en ~arch, il ne va pas vous manger :
Code:
% echo app-portage/gentoolkit >> /etc/portage/package.keywords
% emerge gentoolkit



À noter qu'à partir de maintenant, je n'ai pas grand chose à ajouter par rapport à «man eclean». Mais bon, je sais que les manpages en anglais, certains les lisent avec d'enthousiasme que les posts du forum francophone, alors allons y quand même...


Invocation, principaux modes de nettoyage

La commande de base de eclean est la suivante :
Code:
% eclean [options globales] <action> [options spécifiques à l'action]
Ici, <action> peut être soit distfiles, soit packages, suivant ce que vous souhaitez nettoyer. On dispose aussi de deux commandes raccourcies : eclean-dist et eclean-pkg, qui positionnent l'action respectivement à distfiles ou packages, et qui prennent en paramètres les options globales ou spécifiques, sans ordre particulier.

Au niveau des options globales, je ne m'étendrai pas bien longtemps sur les plus évidentes, que voici :
Code:
 -C, --nocolor             - désactive l'affichage en couleurs
 -i, --interactive         - demande une confirmation pour les effacements
 -p, --pretend             - affiche ce qui serait fait, mais ne le fait pas
 -q, --quiet               - mode silencieux, n'affiche que les erreurs
 -h, --help                - affiche l'aide d'eclean
 -V, --version             - affiche la version d'eclean


Les autres options globales par contre sont plus intéressantes, parce qu'elles agissent sur les choix que eckean va faire en matière d'effacement, bref elles déterminent ce qu'est cette "parcimonie" du nettoyage.

Voilà déjà comment eclean fonctionne sans option : il regarde l'ensembles des ebuilds disponibles (dans l'arbre et dans vos overlays), dans toutes leurs versions, et protège tout ce qui les concerne. C'est à dire que pour l'action distfiles, si vous avez d'installé xorg-x11-6.8.99.x mais que les les sources du 6.8.3 sont encore là, elles seront protegées. De même pour l'action packages, si vous tournez en gcc-3.4 mais avez encore un binaire de gcc-3.3.5, il sera protégé. Bref, ce mode par défaut est le plus conservateur, puisqu'il suppose que tout ce qui est accessible est susceptible d'être encore installé, et gardera donc aussi des fichiers pour d'éventuels downgrades, ou la réinstallation de paquets qu'on avait précédemment supprimés, etc.

Viens ensuite l'option "--destructive" :
Code:
 -d, --destructive         - conserve le minimum nécéssaire à une réinstallation
Avec cette option, eclean va faire un nettoyage plus agressif, et ne conserver que les fichiers concernés par les ebuilds des paquets installés, dans leur version exacte. Si vous avez xorg-x11-6.8.99-15, seule les sources de cette versions exactement seront préservée. De même, si vous avez plusieurs paquets binaires de GCC, mais que seul le 3.4.4-r1 est installé, alors seul le paquet binaire de cette version sera conservé. Au niveau distfiles donc, on ne conserve que de quoi faire un "emerge -e world", ou encore de quoi voir venir les futures "revision bump" des ebuilds (les version-rX). Et au niveau packages, on garde de quoi réparer ce qu'on pourrait malencontreusement corompre sur notre système, mais pas de quoi retourner d'une version en arrière.

Viens enfin l'option "--package-names", utilisable uniquement en plus de "--destructive" :
Code:
 -n, --package-names       - protège toutes les versions
Avec cette options, le nettoyage sera un peu un intermédiaire entre les deux modes précédents : on va conserver ce qui concerne toutes les versions disponibles des paquets installés, et donc conserver ce qui pourrait par exemple servir à faire un downgrade de paquet (comme pour le mode par défaut), mais on va quand même effacer tout le reste. Donc si vous avez encore les sources du dernier KDE mais que depuis vous l'avez virer et êtes passés à GNOME, elles seront effacées.

À noter que les autres scripts de nettoyage (comme yacleaner) utilisent tous, à ma connaissance, une logique qui correspond au mode le plus déstructif d'eclean ("--destructive" sans l'option "--package-names").


Options d'exclusion

En plus de ces trois principaux modes de fonctionnement, on peut utiliser quelques autres options pour affiner la politique de nettoyage.

En option globale, donc valable autant pour les paquets binaires que pour les distfiles, on dispose de "--time-limit" :
Code:
 -t, --time-limit=<time>   - ne pas effacer les fichiers datant de moins de <time>
   <time> est une durée: "1y" pour "one year" (1 an), "2w" pour "two weeks" (2 semaines), etc.
   Les unités sont : y (years), m (months), w (weeks), d (days) et h (hours).
Bon, pas besoin d'épiloguer là dessus, ça permet d'exclure du nettoyage les fichiers les plus récents. C'est une bonne précaution par exemple pour les gens qui bricolent un peu des ebuilds eux même : on peut facilement avoir dans ses distfiles des sources pour un ebuild qu'on va mettre quelques jours à finir avant de définitivement l'installer, et cette option permettra de les protéger (c'est surtout pertinent pour les gens qui lanceront eclean régulièrement depuis leur crontab).

Pour les distfiles, et uniquement pour eux (donc dans les options spécifiques à l'action distfiles), on dispose aussi de ça :
Code:
 -f, --fetch-restricted   - protège les fichiers "fetch-restricted" (en mode --destructive)
 -s, --size-limit=<size>  - prtège les fichiers d'une taille supérieure à <size>
   <size> est une taille de fichier : "10M" pour "dix megaoctets", "200K" pour
   "deux cent kilooctets", etc.  Les unités sont : G, M, K et B.

Le "-f" permet donc de protéger, malgré un --destructive, les fichiers distfiles qu'on a dû télécharger à la main (comme les JDK de Sun par exemple). Quant au "-s", il permet de protéger les plus gros fichiers distfiles. Disons que ces deux options sont des précautions supplémentaires pour éviter d'effacer par mégarde des fichiers particulièrement galère à re-télécharger.


Voilà, c'est presque fini pour les options. Vous aurez noté qu'il n'existe pas d'option spécifique à l'action packages donc.


Fichiers d'exclusion

Un peu dans le même esprit que les options d'exclusion, les "fichiers d'exclusion" sont deux fichiers de configuration qui permettent aussi d'affiner le travail d'eclean pour des cas particuliers. On va pouvoir explicitement y lister des choses à exclure du nettoyage.

Par défaut, ces fichiers fichiers sont /etc/eclean/distfiles.exclude et /etc/eclean/packages.exclude, respectivement pour les actions distfiles et packages. Mais on peut changer ce chemin avec cette option :
Code:
 -e, --exclude-file=<path> - chemin du fichier d'exclusion
C'est particulièrement utile si vous voulez temporairement ignorer votre fichier d'exclusion habituel : il suffit de donner /dev/null comme chemin.

Dans ces fichiers, on peut lister des noms de paquets (noms complets avec la catégorie, comme "app-shells/bash" par exemple) : les binaires ou distfiles de ce paquet seront alors protégés, même en --destructive. Les syntaxes avec version, comme ">=app-shells/bash-3" ne sont par contre pas supportées.

On peut aussi lister des noms de catégories ("sys-apps", ou éventuellement "sys-apps/*", mais c'est vraiment juste pour faire joli) : les binaires ou distfiles de tous les paquets de cette catégorie seront alors protégés. Dans ce cas, on peut alors aussi exclure certains paquets particuliers de la catégorie protegée : par exemple, "!sys-apps/portage" supprimera le paquet "sys-apps/portage" de la protection dont jouissent les autres paquets de "sys-apps".

Il faut savoir aussi que :
- les lignes blanches ou celles commençant par un "#" sont ignorées ;
- on ne liste qu'un élément par ligne.

À noter enfin que dans le fichier d'exclusion des distfiles, on peut donner des noms de fichiers sources à protéger, comme "OOo_1.1.4_source.tar.gz".

Personnellement, je trouve cette fonctionnalité utile surtout pour la protection des paquets binaires : on peut lister dans son packages.exclude les catégories des paquets les plus critiques comme sys-apps, sys-devel, etc., pour conserver plus de versions des binaires de ces paquets. On peut même envisager d'y lister tous les paquets de "system", avec une commande dans ce style :
Code:
% emerge -pe system | sed -n -e 's:^\[.*\] ::' -e 's:-[0-9].*::p' >> /etc/eclean/packages.exclude



Exemples d'utilisation

Allez, juste pour clarifier un peu les choses, quelques exemples... (je reprends ceux que j'avais mis dans la page man) :
- Effacer uniquement les distfiles complètement obsolètes, avec confirmation interactive :
Code:
# eclean -i distfiles

- Vérifier quels seraient les paquets binaires complètement obsolètes à effacer, dans un terminal sans couleur :
Code:
# eclean -Cp packages

- Effacer les paquets binaires des logiciels qui ne sont pas installés sur le système :
Code:
# eclean-pkg -d -n

- Effacer tous les distfiles, saufs ceux des paquets installés (dans cette version exacte), ceux qui ont moins d'un mois, ceux qui sont à télécharger manuellement, et ceux qui font plus de 50 Mo :
Code:
# eclean-dist -d -t1m -s50M -f

- Dans une crontab, nettoyer silencieusement les paquets binaires dans le mode le plus conservateur, et ensuite les distfiles en mode destructif mais en protégeant ceux vieux de moins d'une semaine (l'action s'exécutera tous les dimanches à 1H du matin) :
Code:
0 1 * * sun   eclean -C -q packages ; eclean -C -q -d -t1w distfiles



FAQ

Fichtre, mais c'est super lent !
Oui et non, ça dépend...

Pour l'action packages, on sait toujours sur quels paquets travailler, puisque ce sont ceux qui sont dans /usr/portage/packages. Donc là, en général le temps d'exécution devrait être très raisonnable (modulo que l'utilisation des modules python de portage est toujours un peu lourde avant même qu'on ait voulu faire quoi que ce soit. Cf. le temps que "emerge" met à afficher le "These are the packages that I would merge, in order:" la première fois que vous l'utiliser après un reboot tout frais).

Pour l'action distfiles, c'est plus compliqué... Dans le mode le plus conservateur, celui par défaut, on est obligé de lister tous les fichiers sources réferencés dans l'arbre portage. Ça fait des dizaines de milliers d'ebuilds à acceder, et donc oui, c'est très lent (plusieurs minutes). Au contraire, en mode "--destructive", on n'a que quelques centaines d'ebuilds à traiter (ceux installés), et là l'exécution est très largement plus rapide. Quant aux autres options, certaines influent aussi : --package-names ralentit les choses (accès à toutes les versions des paquets installés, au lieu d'une seul en --destructive tout court), mais pas au point du mode par défaut. Par contre --fetch-restricted nous fait à nouveau retomber aux piètres performances du mode par défaut, puisqu'il faut chercher les ebuilds ainsi marqués dans l'ensemble de l'arbre Portage.

Eclean m'a effacé mon helpcontent_33_unix.tgz, alors qu'il sert pour OpenOffice !
Voilà un exemple de fichier qui est utilisé par un ebuild, mais qui n'y est pas référencé dans les fichiers sources nécéssaires (pour ceux qui connaissent pas, c'est le fichier d'aide localisé en français, que l'ebuild d'OOo utilisera si il le trouve). Eclean ne peut pas grand chose contre ça, c'est un défaut de l'ebuild. Par contre, en ajoutant "helpcontent_33_unix.tgz" à /etc/eclean/distfiles.exclude, on contourne ce problème.

Eclean devrait permettre le nettoyage de /var/tmp/portage, ou du PORT_LOGDIR, etc.
Bof bof... Pour ces deux là au moins, je ne vois pas trop l'intérêt de faire ça depuis eclean. N'importe quel one-liner à coup de "find" et "rm", ou encore "tmpreaper" ou "tmpwatch", font plutôt bien l'affaire. Le truc, c'est que je ne veux mettre dans eclean que des choses qui ont effectivement besoin d'accèder à l'API de portage pour être intelligement nettoyées. Enfin bon, si vous avez des arguments, je ne suis pas non plus fermé aux features requests hein...


The end...

Pfiou... bah voilà, v'ai encore verbé :roll:
En espérant que vous trouverez ce programme utile...


Last edited by TGL on Thu Sep 15, 2005 3:02 pm; edited 1 time in total
Back to top
View user's profile Send private message
kopp
Advocate
Advocate


Joined: 09 Apr 2004
Posts: 2869
Location: Grenoble, France

PostPosted: Thu Sep 15, 2005 2:48 pm    Post subject: Reply with quote

Ah pas mal cet outil, c'est vrai que parfois ça me faisait mal au coeur quand je nettoyais mon distfiles à coup de gros rm -rf : faudra que j'y pense la prochaine fois...
Bon sinon, une fois de plus, tu te fais de la pub :p Barvo ;) En fait t'as bien raison de le faire :)
Back to top
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Thu Sep 15, 2005 3:12 pm    Post subject: Reply with quote

kopp wrote:
Bon sinon, une fois de plus, tu te fais de la pub :p

Oui j'avoue... M'enfin bon, quand mes petits bidouillages portent sur les trucs que je juge utiles en tant que gentooiste, c'est normal de vous en faire profiter non ? :roll:
Je garde par contre pour moi ma nouvelle recette révolutionnaire de vi4gr4 bio, ainsi que mon plan fabuleusement juteux pour faire échapper de Suisse les millions de dollars du petit cousin par alliance d'un ex dictateur africain :P
Back to top
View user's profile Send private message
titix
Guru
Guru


Joined: 01 Nov 2003
Posts: 343
Location: Paris, France

PostPosted: Thu Sep 15, 2005 5:45 pm    Post subject: Reply with quote

Une fois de plus merci TGL !

Great work guy =)
_________________
titix
« La route est longue... mais la voie est libre ! »
Back to top
View user's profile Send private message
guilc
Moderator
Moderator


Joined: 15 Nov 2003
Posts: 3322
Location: Paris - France

PostPosted: Thu Sep 15, 2005 6:04 pm    Post subject: Reply with quote

Pas encore tout a fait au point non ?
Code:
# eclean distfiles
 * Building file list for distfiles cleaning...
 * Cleaning distfiles...
 [   9.4 K ] IO-Socket-INET6-2.51.tar.gz
 [  25.1 K ] Net-IP-1.23.tar.gz
 [ 129.1 K ] binutils-2.16.1-patches-1.0.tar.bz2
 [  52.8 K ] coreutils-5.3.0-patches-1.1.tar.bz2
 [  44.7 K ] gcc-3.4.4-patches-1.5.tar.bz2
 [  26.1 K ] gcc-3.4.4-uclibc-patches-1.1.tar.bz2
 [  46.7 K ] iptraf-2.7.0-ipv6-alpha11.diff
 [  20.8 K ] jpeg-6b-patches-1.0.tar.bz2
 [   2.0 K ] libao-patches-1.tar.bz2
 [  25.5 K ] net-tools-1.60-patches-1.0.tar.bz2
 [  29.1 K ] poster.tar.bz2
 [  16.0 K ] samba-3-gentoo-0.3.6.tar.bz2
 [  10.8 K ] xine-ui-patches-7.tar.bz2
 * Total space that has been freed in distfiles directory: 437.9 K
r2d2 20:00 - 1.99 ~
# ./scripts/distfiles-clean.sh -l -a
 * Scanning PKG database ...                                                                                                                                [ ok ]
 * Building currently-used distfiles directory ...                                                                                                          [ ok ]
 * Generating obsolete files list ...                                                                                                                       [ ok ]
653     /usr/portage/distfiles/fluxbox-0.9.13.tar.bz2
392     /usr/portage/distfiles/ktoblzcheck-1.2.tar.gz
757     /usr/portage/distfiles/ktorrent-1.0.tar.gz
1081    /usr/portage/distfiles/libetpan-0.38.tar.gz
380     /usr/portage/distfiles/librsvg-2.11.1.tar.bz2
3147    /usr/portage/distfiles/libxml2-2.6.21.tar.bz2
164     /usr/portage/distfiles/loop-AES-v3.0c.tar.bz2
196     /usr/portage/distfiles/microcode_ctl-1.11.tar.gz
661     /usr/portage/distfiles/ncurses-5.4-20050827-patch.sh.bz2
477     /usr/portage/distfiles/openct-0.6.5.tar.gz
7547    /usr/portage/distfiles/scribus-1.2.2.1.tar.bz2
276     /usr/portage/distfiles/sysfsutils-1.3.0.tar.gz
440     /usr/portage/distfiles/udev-068.tar.bz2
428     /usr/portage/distfiles/udev-069.tar.bz2
16597   total
 * 14/1003 files are obsolete
Do some cleaning [y/n] ? y

Sachant que les ficheir que je supprime après avec distfiles-clean sont aussi obsoletes (y a une version plus récente dans mes distfiles)
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Thu Sep 15, 2005 6:21 pm    Post subject: Reply with quote

guilc wrote:
Sachant que les ficheir que je supprime après avec distfiles-clean sont aussi obsoletes (y a une version plus récente dans mes distfiles)

RTFM :twisted:

Par défaut, eclean conservera tous les fichiers encore susceptibles d'être utiliser, donc aussi ceux qui pourraient servir à un downgrade de paquet. Si tu veux le même comportement, plus destructeur, que distfiles-clean.sh, utilise l'option "--destructive":
TGL wrote:
À noter que les autres scripts de nettoyage (comme yacleaner) utilisent tous, à ma connaissance, une logique qui correspond au mode le plus déstructif d'eclean ("--destructive" sans l'option "--package-names").
Back to top
View user's profile Send private message
guilc
Moderator
Moderator


Joined: 15 Nov 2003
Posts: 3322
Location: Paris - France

PostPosted: Thu Sep 15, 2005 6:30 pm    Post subject: Reply with quote

arf :'(

Mais bon, juste une remarque en passant et de manière plus générale : les outils de gentoolkit sont pratique, mais relativement prise de tete a utiliser (faut bien lire la doc un certains nombre de fois pour arriver a faire ce qu'on veut), contrairement a beaucoup d'outils tiers équivalents...
Enfin, c'est mon avis :)
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
sireyessire
Advocate
Advocate


Joined: 20 Mar 2003
Posts: 2991
Location: back in Paris, France

PostPosted: Thu Sep 15, 2005 7:06 pm    Post subject: Reply with quote

super outil, merci TGL
_________________
I never think of the future. It comes soon enough.
Albert Einstein

Try simpler first
Shockley
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1888
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Thu Sep 15, 2005 9:02 pm    Post subject: Reply with quote

TGL wrote:
RTFM :twisted:


Et voilà, TGL est mûr pour les mailing-listes Debian :lol: !

Oh, la belle bleue :twisted: !

Bon, sinon, rien à redire, surtout que j'ai pas encore tout lu, je suis crevé ce soir, on verra ça demain matin !
_________________
Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Back to top
View user's profile Send private message
yuk159
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1801
Location: noumea ,nouvelle-caledonie

PostPosted: Fri Sep 16, 2005 2:09 am    Post subject: Reply with quote

Merci M'ssieur TGL, il tombe très bien cet outil :P
_________________
The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
un blog de plus :)
Back to top
View user's profile Send private message
titoucha
Advocate
Advocate


Joined: 21 Jul 2005
Posts: 2374
Location: Genève

PostPosted: Fri Sep 16, 2005 4:00 am    Post subject: Reply with quote

Bon outil très pratique, merci :D
Back to top
View user's profile Send private message
marvin rouge
Veteran
Veteran


Joined: 01 Aug 2004
Posts: 1422
Location: Villa Lumierrante, Zonelibre

PostPosted: Sun Sep 25, 2005 2:25 pm    Post subject: Re: [HOWTO] Nettoyer les distfiles et les packages avec ecle Reply with quote

TGL wrote:
Eclean devrait permettre le nettoyage de /var/tmp/portage, ou du PORT_LOGDIR, etc.
Bof bof... Pour ces deux là au moins, je ne vois pas trop l'intérêt de faire ça depuis eclean. N'importe quel one-liner à coup de "find" et "rm", ou encore "tmpreaper" ou "tmpwatch", font plutôt bien l'affaire. Le truc, c'est que je ne veux mettre dans eclean que des choses qui ont effectivement besoin d'accèder à l'API de portage pour être intelligement nettoyées. Enfin bon, si vous avez des arguments, je ne suis pas non plus fermé aux features requests hein...


A priori, j'aimerai bien une option (-l --log-clean) qui supprime les log dans PORT_LOGDIR correspondant aux distfiles ou packages (de versions inférieures ou égales) supprimés par eclean. Si on n'a plus besoin des distfiles ou des packages, on n'a plus besoin non plus des logs. J'ai pas vraiment d'argument percutant pour justifier ce feature. :/

Bon, je dis ça aussi parce que je viens de trouver plus de 200MO de logs dans mon PORT_LOGDIR ... et là, ca va se régler à coups de rm.

Merci pour cet outil bien pratique

+
Back to top
View user's profile Send private message
netfab
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1590
Location: 127.0.0.1

PostPosted: Wed Nov 09, 2005 9:00 am    Post subject: Reply with quote

Salut,

TGL wrote:
Viens ensuite l'option "--destructive" :
Code:

 -d, --destructive         - conserve le minimum nécéssaire à une réinstallation

Avec cette option, eclean va faire un nettoyage plus agressif, et ne conserver que les fichiers concernés par les ebuilds des paquets installés, dans leur version exacte.


Je viens d'installer la dernière version instable de gentoolkit, juste pour profiter du man eclean :)
Du coup, si je fais un :
Quote:
# eclean -p -d packages
* Building file list for packages cleaning...
* Here are binary packages that would be deleted:
[ 81.5 K ] app-portage/gentoolkit-0.2.0-r2
* Total space that would be freed in packages directory: 81.5 K

Pourtant (je ne met pas toute la liste, mais j'ai plein d'exemples) :
Quote:

$ ls -l /usr/portage/packages/All/

-rw-r--r-- 1 root root 225394 sep 9 13:58 baselayout-1.11.12-r4.tbz2
-rw-r--r-- 1 root root 225943 sep 9 13:58 baselayout-1.11.13-r1.tbz2
-rw-r--r-- 1 root root 227503 sep 9 13:58 baselayout-1.11.13.tbz2

[...]

-rw-r--r-- 1 root root 655773 sep 9 13:57 beep-media-player-0.9.7-r4.tbz2
-rw-r--r-- 1 root root 655510 sep 9 13:57 beep-media-player-0.9.7-r6.tbz2
-rw-r--r-- 1 root root 657660 oct 31 21:33 beep-media-player-0.9.7-r8.tbz2

[...]

-rw-r--r-- 1 root root 805527 sep 9 13:57 control-center-2.10.0.tbz2
-rw-r--r-- 1 root root 811646 sep 9 13:57 control-center-2.10.1-r1.tbz2
-rw-r--r-- 1 root root 754900 sep 9 13:57 control-center-2.10.2.tbz2

[...]

-rw-r--r-- 1 root root 718649 sep 9 13:58 metacity-2.10.0.tbz2
-rw-r--r-- 1 root root 731389 sep 9 13:58 metacity-2.10.1.tbz2
-rw-r--r-- 1 root root 704540 sep 9 13:58 metacity-2.10.2.tbz2
-rw-r--r-- 1 root root 707206 sep 9 13:58 metacity-2.10.3.tbz2

[...]

-rw-r--r-- 1 root root 18033127 sep 9 13:59 mozilla-1.7.10-r1.tbz2
-rw-r--r-- 1 root root 18032514 sep 9 13:59 mozilla-1.7.11.tbz2
-rw-r--r-- 1 root root 18295489 oct 15 11:37 mozilla-1.7.12-r2.tbz2
-rw-r--r-- 1 root root 10112393 sep 9 13:57 mozilla-firefox-1.0.6-r2.tbz2
-rw-r--r-- 1 root root 10218095 sep 30 15:35 mozilla-firefox-1.0.7-r2.tbz2

[...]



J'ai raté quelque chose ?
Merci.
Back to top
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Wed Nov 09, 2005 9:15 am    Post subject: Reply with quote

NetFab, est-ce que tu peux regarder si pour ces paquets présents dans packages/All tu as aussi des symlinks pointant dessus depuis packages/leur_catégorie stp ? Si il n'y a pas de tels symlinks, alors effectivement eclean va les rater (bug connu, mais auquel j'ai pas encore eu le temps de m'atteler). Si il sont bien réferencés dans les catégories par contre, alors c'est un mystère...
Bon, faut que je m'y repenche sur eclean de toute façon, y'a ce bug là et aussi qlqs autres trucs que je voudrais ajouter. J'vais essayer de me bouger le c** ces jours prochains :oops:
Back to top
View user's profile Send private message
netfab
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1590
Location: 127.0.0.1

PostPosted: Wed Nov 09, 2005 9:35 am    Post subject: Reply with quote

Ah oui, effectivement : je n'ai pas les liens :wink:
En fait, il me semble que ces paquets là proviennent de mon ancienne installation.
Il n'y a pas un moyen de recréer ces liens rapidement ?
Back to top
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Wed Nov 09, 2005 10:05 am    Post subject: Reply with quote

NetFab wrote:
Il n'y a pas un moyen de recréer ces liens rapidement ?


Hmm... intéressante question tiens...
Et bah tu peux installer "app-portage/portage-utils", et essayer ce petit script :
Code:
#!/bin/bash

PKGDIR=$(portageq envvar PKGDIR)
cd "${PKGDIR}"
for file in All/* ; do
    category="$(qxpak -O -x <(qtbz2 -O -x ${file}) CATEGORY)"
    symlink="${category}/${file##*/}"
    [ -d "${category}" ] || mkdir "${category}"
    [ -f "${symlink}" ] || ln -sf "${PKGDIR}/${file}" "${symlink}"
done


EDIT : en root pour lancer le script, évidemment.
Back to top
View user's profile Send private message
netfab
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1590
Location: 127.0.0.1

PostPosted: Wed Nov 09, 2005 10:34 am    Post subject: Reply with quote

Erreur de syntaxe ligne 6 :
Quote:

liens.sh: command substitution: line 6: syntax error near unexpected token `('
liens.sh: command substitution: line 6: `qxpak -O -x <(qtbz2 -O -x ${file}) CATEGORY'

J'ai tenté quelques expériences, mais infructueuses, et je préfère m'arrêter avant que ce ne soit irrémédiable :lol:
Back to top
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Wed Nov 09, 2005 10:49 am    Post subject: Reply with quote

Quote:
liens.sh: command substitution: line 6: syntax error near unexpected token `('
liens.sh: command substitution: line 6: `qxpak -O -x <(qtbz2 -O -x ${file}) CATEGORY'

J'suis dégouté, je l'aimais bien cette ligne moi, et ici elle a marché nickel... Quelle version de Bash utilises tu ? (3.0-r13 ici)

Enfin bon, tant pis, on peux passer par un fichier temporaire plutôt que par la substitution de processus :
Code:
#!/bin/bash

PKGDIR=$(portageq envvar PKGDIR)
xpaktmp=/tmp/tmp.xpak
cd "${PKGDIR}"
for file in All/* ; do
    qtbz2 -O -x ${file} > ${xpaktmp}
    category="$(qxpak -O -x ${xpaktmp} CATEGORY)"
    symlink="${category}/${file##*/}"
    [ -d "${category}" ] || mkdir "${category}"
    [ -f "${symlink}" ] || ln -sf "${PKGDIR}/${file}" "${symlink}"
done
rm -f ${xpaktmp}
Back to top
View user's profile Send private message
shingara
Tux's lil' helper
Tux's lil' helper


Joined: 26 Dec 2004
Posts: 137
Location: Paris, FR

PostPosted: Wed Nov 09, 2005 10:53 am    Post subject: Reply with quote

Super HOWTO TGL, il est vraiment utile de l'utiliser surtout si on a la meme gentoo depuis plus de 6 mois :)
_________________
shingara
Back to top
View user's profile Send private message
netfab
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1590
Location: 127.0.0.1

PostPosted: Wed Nov 09, 2005 10:55 am    Post subject: Reply with quote

bash : 3.0-r12

Un grand merci pour ta disponibilité :wink:
Quote:

# eclean -p -d packages
* Building file list for packages cleaning...
* Here are binary packages that would be deleted:

[...]

* Total space that would be freed in packages directory: 901.7 M
Back to top
View user's profile Send private message
TGL
Bodhisattva
Bodhisattva


Joined: 02 Jun 2002
Posts: 1978
Location: Rennes, France

PostPosted: Wed Nov 09, 2005 11:08 am    Post subject: Reply with quote

NetFab wrote:
bash : 3.0-r12

Intriguant cette histoire... peut-être un bug qui a été fixé dans le petit paquet de patchs supplémentaires introduits par la -r13... Enfin bref, on s'en fout après tout...

NetFab wrote:
Un grand merci pour ta disponibilité :wink:

shingara wrote:
Super HOWTO TGL, il est vraiment utile de l'utiliser surtout si on a la meme gentoo depuis plus de 6 mois :)

u're welcome ;)
Back to top
View user's profile Send private message
Laifen
n00b
n00b


Joined: 31 May 2006
Posts: 12
Location: Ile de France

PostPosted: Thu Mar 15, 2007 7:34 pm    Post subject: Reply with quote

Super le post merci ;)
Back to top
View user's profile Send private message
Tuxicomane
Apprentice
Apprentice


Joined: 14 Nov 2006
Posts: 290
Location: Val-de-Marne, FRANCE

PostPosted: Thu Mar 15, 2007 9:42 pm    Post subject: Reply with quote

Héhé le up d'un an et demi ! :lol:

Bon dans ce cas, j'en profite pour moi aussi remercier TGL pour cet outil dont je me sers souvent ;)
Enfin quand je suis sous Gentoo quoi ...
Back to top
View user's profile Send private message
castor_fou
Apprentice
Apprentice


Joined: 23 May 2002
Posts: 249
Location: Clermont-Ferrand, France

PostPosted: Sat Feb 05, 2011 9:29 pm    Post subject: Reply with quote

c'est vrai qu'il est bien cet outil !
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum