# [detente] emerge --sync qui fait une pause a 51% ...

## gbetous

salut a tous !

j'ai remarqué depuis un bon moment que l'update de portage se bloque systématiquement a 51% (et ca reste plusieurs minutes !!!), pour ensuite continuer tranquillement son boulot.

ca vous le fait aussi ? a quel pourcentage ?

 :Wink: 

----------

## razer

Cà m'a fait la même chose pendant pas mal de temps, jusqu'à il y a peu ou tout est redevenu normal...

Je ne sais pas exactement ce qu'il fait, mais il ne se bloque pas vraiment, il continue à user du proc et du disque, simplement le sync est plus long...

En fait je ne me suis pas vraiment inquiété de çà.

----------

## Mickael

idem sur mon portable, mais l'attente est moins longue lorsque j'ai peu d'applications de lancées.

----------

## Adrien

Pareil ici, vers 51 ou 52%, ça dépend des fois....  :Rolling Eyes: 

----------

## xaviermiller

Oui, l'arbre de portage est devenu énorme... mais avec la 2.1 (en ~), ils ont sérieusement amélioré les performances du "emerge metadata" et même sur mon vieux PII, ça va assez vite...

----------

## ghoti

Problème connu mais il y a une solution :

[HOWTO] Speeding up portage with cdb -- UPDATE

L'augmentation de vitesse est tout simplement bluffante !  :Smile: 

----------

## palatin

Il me semble que le problème est lié au nombre astronomique d'ebuilds dans kde-base depuis l'apparition notamment des split-ebuilds. Pour ceux qui n'ont pas d'appli kde, une solution est d'utiliser rsync_excludes dans make.conf.

Je me demande également si l'amélioration du cache dans portage 2.1 n'aurait pas été portée dans la dernière version stable (2.0.54)

----------

## UB|K

 *palatin wrote:*   

> Pour ceux qui n'ont pas d'appli kde, une solution est d'utiliser rsync_excludes dans make.conf.

 

Excellent! merci bien pour ce tip que je connaissais pas. Par contre, la manpage de portage n'est pas très explicite sur cette fonction alors si tu peux confirmer ce que j'ai fait, ça m'aiderait bien:

* dans mon make.conf:

```
RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
```

* dans /etc/portage/rsync_excludes:

```
kde-base
```

c'est sur cette dernière ligne que j'ai des doutes (faut peut être mettre le chemin complet?), j'ai bon?

----------

## palatin

je collerai mon fichier d'excludes ce soir en présence de ma gentoo ^^

[EDIT] j'ai mon portable avec moi  :Smile: 

```
$ cat /etc/portage/rsync_excludes

kde-*/

games-*/

gnustep-*/

app-emacs/

app-xemacs/

dev-games/

dev-php*/

net-zope/

sci-biology/

sci-chemistry/

sci-geosciences/

sys-cluster/

rox-*/

metadata/cache/kde-*/

metadata/cache/games-*/

metadata/cache/gnustep-*/

metadata/cache/app-emacs/

metadata/cache/app-xemacs/

metadata/cache/dev-games/

metadata/cache/dev-php*/

net-zope/

metadata/cache/rox-*/

metadata/cache/sci-biology/

metadata/cache/sci-chemistry/

metadata/cache/sci-geosciences/

metadata/cache/sys-cluster/

```

A noter qu'il faut également supprimer les dossiers correspondants dans /etc/portage

par exemple en faisant :

```
# for i in `cat /etc/portage/rsync_excludes | sed -e "s/\/$//"`; do rm -R /usr/portage/$i;done

# emerge metadata
```

----------

## UB|K

Ok, merci.

Tout ça mériterait un petit [TIP] dans le sous-forum "Documentations, Astuces et Scripts", ça peut être très utile.

----------

## Trevoke

 *ghoti wrote:*   

> Problème connu mais il y a une solution :
> 
> [HOWTO] Speeding up portage with cdb -- UPDATE
> 
> L'augmentation de vitesse est tout simplement bluffante ! 

 

Attention! Ca ne marche pas avec >=portage-2.1 ...

----------

## ghoti

 *Trevoke wrote:*   

>  *ghoti wrote:*   Problème connu mais il y a une solution :
> 
> [HOWTO] Speeding up portage with cdb -- UPDATE
> 
> L'augmentation de vitesse est tout simplement bluffante !  
> ...

 

Arf, j'ai oublié que j'avais spécifiquement masqué cette branche justement pour cette raison !   :Embarassed: 

Mais bon, les portage-2.1* sont encore tildarchés. Ma suggestion reste donc valable pour la branche stable (au moins jusqu'au 2.0.54)   :Cool: 

----------

## marvin rouge

 *ghoti wrote:*   

> Arf, j'ai oublié que j'avais spécifiquement masqué cette branche justement pour cette raison !  

 

Juste pour info, j'ai la version 2.1_pre3 et je n'ai plus ce problème d'arrêt à 51% (que j'avais avec les versions 2.0.xx).

2 cents.

+

----------

## Trevoke

Pour info, j'utilise une combo esearch + eix  :Wink: 

Je fais "esync && update-eix" et ca me montre, gentiment, silencieusement, tout ce qui a change dans portage, et ensuite j'ai mon p'tit eix super-rapide pour faire la recherche. Des que eix developpe une fonctionnalite comme 'esync'...  :Smile: 

----------

## kernelsensei

pourquoi ne pas simplement utiliser eix-sync ?

Moi je fais toujours 

```
eix-sync -v && emerge -auvDN world
```

1. Ca fait le sync

2. Ca update eix

3. Ca montre les diffs

4. emerge -auvDN world

----------

## Trevoke

Woohooo moi y en a pas connaitre avant! Moi y en a connaitre maintenant! Moi y en a retirer esearch  :Wink: 

----------

## kernelsensei

 *Trevoke wrote:*   

> Woohooo moi y en a pas connaitre avant! Moi y en a connaitre maintenant! Moi y en a retirer esearch 

 

Ca fait un moment maintenant que ça existe  :Razz:  ...

----------

## truz

Je ne connaissais pas non plus eix-sync, c'est excellent ! merci k_s  :Smile: 

----------

## Trevoke

Excellent peut-etre mais j'ai l'impression que ca ne montre pas -tout- (entre autres, pas les updates...). Ca montre seulement les nouveaux paquets on dirait :/

----------

## blasserre

 *Trevoke wrote:*   

> Excellent peut-etre mais j'ai l'impression que ca ne montre pas -tout- (entre autres, pas les updates...). Ca montre seulement les nouveaux paquets on dirait :/

 

môssieu j'utilise_encore_esearch_en_2006 fait la fine bouche ?  :Mr. Green: 

----------

## kernelsensei

 *Trevoke wrote:*   

> Excellent peut-etre mais j'ai l'impression que ca ne montre pas -tout- (entre autres, pas les updates...). Ca montre seulement les nouveaux paquets on dirait :/

 

moi j'ai bien les updates !

----------

## gbetous

 *ghoti wrote:*   

> 
> 
> [HOWTO] Speeding up portage with cdb -- UPDATE
> 
> L'augmentation de vitesse est tout simplement bluffante ! 

 

ouah !!!

voici mes stats a moi, pour un "time emerge -S mozilla":

avant :

```

real    1m54.065s

user    0m28.689s

sys     0m5.465s

```

apres :

```

real    0m33.599s

user    0m24.739s

sys     0m2.040s

```

Je garde   :Cool: 

----------

## Trevoke

gbetous : pour bien calculer, il faudrait rebooter, faire le premier, faire la modification, rebooter, faire le deuxieme, sinon le cache peut etre trompeur quand meme.

----------

## gbetous

oui, en effet...

bon, sans rebooter (la flemme), j'ai refait les 2 essais successifs (histoire de profiter du cache, dans les 2 cas).

je tombe sur :

```
real    0m40.084s

user    0m26.135s

sys     0m2.992s
```

et

```
real    0m31.256s

user    0m24.659s

sys     0m1.844s
```

(j'ai refait immédiatement le 1er essai - ancienne méthode - et je retombe sur 40sec)

bon, c'est moins impressionnant tout a coup, mais c'est toujours mieux !

----------

## nemo13

 *kernel_sensei wrote:*   

>  *Trevoke wrote:*   Excellent peut-etre mais j'ai l'impression que ca ne montre pas -tout- (entre autres, pas les updates...). Ca montre seulement les nouveaux paquets on dirait :/ 
> 
> moi j'ai bien les updates !

 

bonsoir, 

j'ose confirmer  :Wink: 

extrait du 2005-12-02

```

2005-12-02

>>> Updating Portage cache:  100%

Performing Global Updates: /usr/portage/profiles/updates/4Q-2005

(Could take a couple of minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

  s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*'

 ** Skipping packages. Run 'fixpackages' or set it in FEATURES to fix the

    tbz2's in the packages directory. Note: This can take a very long time.

Reading Portage settings ..

Building database (/var/cache/eix) from scratch ..

[0] /usr/portage/ (cache: flat)

     Reading 100%

Applying masks ..

Database contains 10339 packages in 144 categories.

Diffing databases (10321 - 10339 packages)

[N] == app-admin/gamin (0.1.7): Library providing the FAM File Alteration Monitor API

[N] == app-admin/usermin (1.180): a web-based user administration interface

    << app-admin/watchdog (5.2.4): A software watchdog

[N] == app-admin/webmin (1.250): Webmin, a web-based system administration interface

[U] == app-arch/cpio (2.6-r5): A file archival tool which can also read and write tar files

[N] == app-backup/hdup (1.6.37): Hdup is backup program using tar,find,gzip/bzip2,mcrypt and ssh.

[U] == app-crypt/gnupg (1.4.2-r3): The GNU Privacy Guard, a GPL pgp replacement

[N] == app-office/kword (1.4.2): KOffice word processor.

[U] == app-office/openoffice (2.0.0): OpenOffice.org, a full office productivity suite.

[N] == app-office/openoffice-bin (2.0.0): OpenOffice productivity suite

[N] == app-office/openoffice-ximian (1.9.199): Ximian-ized version of OpenOffice.org, a full office productivity suite - now deprecated

[U] == dev-java/java-config (1.2.11-r1): Java environment configuration tool

[N] == dev-java/sun-jdk (1.4.2.10): Sun's J2SE Development Kit, version 1.5.0.05

[N] == dev-java/sun-jre-bin (1.4.2.10): Sun's J2SE Platform
```

à chaque coup je regarde les [U] à la fin du eix-sync ; 

j'en déduis donc ce que emerge -auDNtv world va remonter comme mise à jour.

( le chti -v de k_s pour eix vient d'être adopté merci )

édit pour complèments info :

"ma procédure complète" est :

```
eix-sync -v

emerge -auDNtv portage     ( si besoin )

etc-update                 ( si besoin )

emerge -auDNtv world

etc-update                 ( si besoin )

/usr/local/sbin/enotice

updatedb -e /Archive,/var/enotice,/var/tmp/ccache,/dev,/mnt,/sos,/tmp,/usr/tmp/ccache

```

A faire hebdomadairement pour l'hygiène de la machine  :Embarassed: 

----------

## loopx

 *gbetous wrote:*   

> salut a tous !
> 
> j'ai remarqué depuis un bon moment que l'update de portage se bloque systématiquement a 51% (et ca reste plusieurs minutes !!!), pour ensuite continuer tranquillement son boulot.
> 
> ca vous le fait aussi ? a quel pourcentage ?
> ...

 

Oui, j'ai eu ce problème, mais avec les nouvelles version du portage, ca va plus vite  :Wink:  (~x86)

----------

## yoyo

Arf, j'ai un vieil alias dans le .bashrc de mon root : alias eixsync="emerge sync &>/dev/null && update-eix && emerge -vuDp world"  :Laughing: 

Comme quoi ...

Mais je pense que je vais tout de même tester eix-sync.   :Rolling Eyes: 

----------

## kernelsensei

Petite info, pour ceux qui auraient des problemes avec eix et un portage recent (2.1), il faut faire un petit 

```
echo "PORTDIR_CACHE_METHOD=backport" >> /etc/eixrc
```

Voila  :Wink: 

----------

## nemo13

 *kernel_sensei wrote:*   

> Petite info, pour ceux qui auraient des problemes avec eix et un portage recent (2.1), il faut faire un petit 
> 
> ```
> echo "PORTDIR_CACHE_METHOD=backport" >> /etc/eixrc
> ```
> ...

 

bonsoir,

je ne suis pas encore en 2.1 mais ton post est au chaud.

merci

----------

## Oni92

 *Trevoke wrote:*   

>  *ghoti wrote:*   Problème connu mais il y a une solution :
> 
> [HOWTO] Speeding up portage with cdb -- UPDATE
> 
> L'augmentation de vitesse est tout simplement bluffante !  
> ...

 

A la fin du topic cité, ils expliquent comment utiliser CDB avec portage 2.1   :Twisted Evil: 

De plus, on peut utiliser CDB pour eix (pas contre le gain est moindre).

----------

## ghoti

 *Oni92 wrote:*   

> A la fin du topic cité, ils expliquent comment utiliser CDB avec portage 2.1  
> 
> De plus, on peut utiliser CDB pour eix (pas contre le gain est moindre).

 

Bien vu !

En effet, portage 2.1* et eix fonctionnent bel et bien avec cdb !  :Smile: 

----------

## BuBuaBu

comment deactivé la mis a jour du cache a la fin de emerge sync ?

Je n'install jamais rien sur mon serveur et cette opération lui prend vraiment du temps.

----------

## ghoti

 *BuBuaBu wrote:*   

> comment deactivé la mis a jour du cache a la fin de emerge sync ?
> 
> Je n'install jamais rien sur mon serveur et cette opération lui prend vraiment du temps.

 

Tout d'abord, si tu n'installes jamais rien, je ne vois pas l'utilité de faire un emerge sync !

Cela dit, je ne pense pas qu'il soit possible de désactiver le cache.

Mais si tu as suivi un peu les liens qui ont été donnés plus haut, tu verrais qu'il y a moyen d'accélérer grandement la mise-à-jour du cache. La durée de màj n'est alors plus qu'une fraction de la durée de synchronisation ...

----------

## BuBuaBu

Oui, j'ai suivie les lien, et fait les manip. mais ca reste long (petite machine).

Ensuite comme c'est un serveur le fait un sync et tout les client de mon reseaux se sync dessus ensuite.

----------

## ghoti

 *BuBuaBu wrote:*   

> tout les client de mon reseaux se sync dessus ensuite.

 Vu comme ça, évidemment ...  :Wink: 

 *BuBuaBu wrote:*   

> Oui, j'ai suivie les lien, et fait les manip. mais ca reste long (petite machine)

 Est-ce vraiment gênant pour un serveur ?

Si c'est vraiment long, donne-nous ta config et quelques benchs "avant/après", qu'on puisse se rendre compte (et éventuellement comparer)

----------

## BuBuaBu

Voila pour mon serveur :

```
server ~ # time emerge metadata

skipping sync

>>> Updating Portage cache:  100%

real    1m21.368s

user    1m16.013s

sys     0m3.992s

server ~ # mv /etc/portage/modules /etc/portage/__modules

server ~ # time emerge metadata

skipping sync

>>> Updating Portage cache:  100%

real    2m25.964s

user    1m22.681s

sys     0m9.601s
```

La machine : Pentium 3@450Mhz, 384Mo de ram, 40+20Go de disque dur.

En comparaison a mon desktop (bi-xeons@2.8Ghz, 4Go de ram, 6*120Go de disque dur) :

```
# time emerge metadata

skipping sync

>>> Updating Portage cache:  100%

 * An update to portage is available. It is _highly_ recommended

 * that you update portage now, before any other packages are updated.

 * Please do so and then update ALL of your configuration files.

real    0m17.143s

user    0m15.005s

sys     0m2.136s

```

Bon la machine pour comparer est vraiment un mauvais exemple...

----------

## Elbac

Bonjour,

Je ne sais pas si je suis dans le bon topic, mais chez moi j'ai remarqué qu'il me manquait pas mal d'espace sur mon disque. Aprés quelques recherches, je me suis rendu compte que j'avais 4,7 Go dans /var/tmp/portage. Ce dossier s'est rempli avec une copie des programmes que j'ai installé.

Par exemple en ce moment, il contient (je l'ai vidé hier):

```
alsa-driver-1.0.10-r2  alsa-oss-1.0.10-r1  homedir
```

Comme j'avais besoin de place j'ai tout effacé. Et puis, je me suis rendu compte que mon emerge --sync se faisait maintenant extremement rapidement.

Si quelqu'un sait à quoi sert ce dossier...

----------

## ghoti

 *Elbac wrote:*   

> je me suis rendu compte que j'avais 4,7 Go dans /var/tmp/portage
> 
> [ ... ]
> 
> Si quelqu'un sait à quoi sert ce dossier...

 

C'est tout simplement le répertoire de travail de emerge. 

Chaque sous-répertoire correspond à un package que tu as installé.

Si l'installation s'est déroulée sans problème, le sous-répertoire reste mais son contenu devrait être nettoyé.

Cependant, si un emerge a échoué, les fichiers de travail restent en place, ce qui peut aboutir à une grosse occupation d'espace.

Note que tu peux sans problème vider le répertoire /var/tmp/portage mais je ne vois pas le rapport avec la rapidité du emerge sync ...

----------

## nemo13

 *Elbac wrote:*   

> 
> 
>  je me suis rendu compte que j'avais 4,7 Go dans /var/tmp/portage. 

 

En faisant un emerge info  as-tu ?

```
AUTOCLEAN="yes"

```

Si oui , à moins que tes emerge foirent plus que de raison , ton /var/tmp/portage

ne devrait pas être aussi plein

----------

## Elbac

AUTOCLEAN est bien à yes, donc je ne vois pas trop ce qui se passe...

----------

## ghoti

Que donne un  *Quote:*   

> du -h --max-depth=1 /var/tmp/portage

   :Question: 

----------

## Longfield

 *kernel_sensei wrote:*   

> Petite info, pour ceux qui auraient des problemes avec eix et un portage recent (2.1), il faut faire un petit 
> 
> ```
> echo "PORTDIR_CACHE_METHOD=backport" >> /etc/eixrc
> ```
> ...

 

ah, merci KS, eix commençait à me manquer !

----------

## UB|K

Tu n'a pas lu en profondeur ce thread ni les interventions de ghoti et Oni92??

parce que vers la page 7, on apprend qu'un dev a porté le module cdb pour portage-2.1

Il suffit de télécharger cdb.py pour remplacer l'ancien (et virer les .pyo, .pyc correspondants) et ça marche à nouveau.

----------

## ghoti

 *UB|K wrote:*   

> Il suffit de télécharger cdb.py pour remplacer l'ancien

 

Ce n'est même plus nécessaire : les dernières versions de portage (au moins la 2.1_pre4-r1) contiennent le bon cdb.py ! (un diff montre qu'ils sont binairement identiques)  :Smile: 

D'ailleurs, on peut très bien utiliser eix avec ce module  *Quote:*   

> echo "PORTDIR_CACHE_METHOD=CDB" >> /etc/eixrc

 

----------

## _droop_

 *ghoti wrote:*   

>  *UB|K wrote:*   Il suffit de télécharger cdb.py pour remplacer l'ancien 
> 
> Ce n'est même plus nécessaire : les dernières versions de portage (au moins la 2.1_pre4-r1) contiennent le bon cdb.py ! (un diff montre qu'ils sont binairement identiques) 

 

+1 essayé et adopté.

Enfin tout ça pour gagner quelques minutes (ou secondes suivant la machine) sur une chose qu'il ne faut pas faire plus d'une fois par jour   :Very Happy: 

----------

