# [Emerge] Ne veut plus compiler... (Résolu)

## BaNaNe

Bonjour tout le monde!

Après mon installation de gcc4, j'ai lancé un emerge -e world pour uniformiser le tout. C'est amusant, 760 paquets à recompiler, vive distcc!

Tout s'est bien passé pour les 300 premiers paquets mais là, emerge fait sa crise et ne veut plus compiler!

En fait, j'ai dû stopper l'emerge car je devais partir d'où j'étais pour rentrer chez moi (c'est sur un portable). J'ai relancer l'emerge avec un --resume, il a continuer sans problème sur quelques paquets puis... plus rien.

En détail, il décompresse le paquet (samba), fait le configure (checking ......) puis affiche quelques lignes 'config.status : ....' puis... il s'arrête, plus d'activité au niveau du cpu, il reste là. Il n'y a aucune erreur!

J'ai essayé avec un --skipfirst mais il fait la même chose sur libmng : 

```

(...)

checking zlib.h presence... yes

checking for zlib.h... yes

checking for gzread in -lz... yes

checking jpeglib.h usability... yes

checking jpeglib.h presence... yes

checking for jpeglib.h... yes

checking for jpeg_read_header in -ljpeg... yes

configure: creating ./config.status

config.status: creating Makefile

config.status: executing depfiles commands

<< plus rien, même après une heure ou deux >>

```

Donc, comment je peux faire pour qu'il continue l'emerge (ça serait bien que je ne doive pas recommencer à zéro)?

Merci d'avance!

----------

## lost_in_the_shell

Juste comme çà mais tu as regardé si celà n'était pas du à un problême d'espace disque ? (car aprés un emerge de 300 paquets le distfiles/ doit être gros) , sinon tu peux aussi essayer de regarder du coté des processus , pour voir s'il n'y a pas un processus fantome (ou precessus normal) qui te bouffe la moitié de tes ressources (sur mon portable çà m'était arrivé et le problême venait de acpid)...

j'espere que ton problême va se resoudre , mais ne t'en fais pas vu l'éfficacité de ce forum je ne me fais pas de soucis   :Very Happy: 

----------

## BaNaNe

Je n'ai jamais douté de l'efficacité de ce forum, c'est bien pour cela que je poste ici  :Wink: 

J'ai rebooté depuis, juste pour voir mais cela n'a pas arrangé le problème. Il n'y a pas de processus fantome, le cpu est tout calme :p

Au niveau de l'espace disque, il y a 3Go de libre sur / donc, ca doit aller aussi. Je n'ai pas de partition séparée pour /var ou autres répertoires.

Vraiment bizare... c'est comme si il s'arretait juste avant de commencer la compilation proprement dite :s

----------

## xaviermiller

essaie un

```
eselect profile list
```

il se peut que ton profile est perdu (c'était mon cas après un emerge -e world)

----------

## BaNaNe

Il semble que ça ne soit pas le cas ici : 

```

Available profile symlink targets:

  [1]   default-linux/x86/2006.1

  [2]   default-linux/x86/no-nptl

  [3]   default-linux/x86/no-nptl/2.4

  [4]   default-linux/x86/2006.1/desktop *

  [5]   hardened/x86/2.6

  [6]   selinux/x86/2006.1

```

Il y a une étoile à coté du [4]...

Je cherche toujours   :Shocked: 

----------

## BaNaNe

J'ai quelque chose à rajouter : quand je fais un CTRL+C pour annuler pour de bon l'emerge et récupérer mon terminal, il m'affiche ceci : 

```

checking jpeglib.h presence... yes

checking for jpeglib.h... yes

checking for jpeg_read_header in -ljpeg... yes

configure: creating ./config.status

config.status: creating Makefile

config.status: executing depfiles commands

/usr/portage/media-libs/libmng/libmng-1.0.9-r1.ebuild: src_compile aborted; exiting.

sandbox:  Caught signal 2 in pid 9680

Exiting on signal 2

```

Se pourrait-il que le problème vienne de ce sandbox?

Je pourrais le réemerger mais si je le fais, est-ce que le emerge --resume reprendra le emerge world où il était arrivé?

Merci !

----------

## _Seth_

 *BaNaNe wrote:*   

> Je pourrais le réemerger mais si je le fais, est-ce que le emerge --resume reprendra le emerge world où il était arrivé? 

 

A priori non ! Si tu reemerge sandbox puis que tu veux reprendre ton emerge -e, tu reprendras tout depuis le début. Maintenant, y'a 2 solutions :

-1) tu choppes le fichier dans lequel portage écrit ses emerges en cours et tu le sauvegardes  :Wink:  Je sais plus où il est...

-2) Pourquoi reemerger sandbox   :Question:  Pourquoi tu veux pas le désactiver dans les FEATURES de ton make.conf et voir si c'est bien ça le problème...

----------

## man in the hill

 *_Seth_ wrote:*   

>  *BaNaNe wrote:*   Je pourrais le réemerger mais si je le fais, est-ce que le emerge --resume reprendra le emerge world où il était arrivé?  
> 
> A priori non ! Si tu reemerge sandbox puis que tu veux reprendre ton emerge -e, tu reprendras tout depuis le début. Maintenant, y'a 2 solutions :
> 
> -1) tu choppes le fichier dans lequel portage écrit ses emerges en cours et tu le sauvegardes  Je sais plus où il est...
> ...

 

-1 Le fichier  c'est  /var/cache/edb/mtimedb  donc tu le sauvegardes ds ton root par exemple : # cp /var/cache/edb/mtimedb   ~/

----------

## BaNaNe

Je vais quand même sauvegarder le fichier mtimedb, on ne sait jamais  :Wink: 

J'ai essayé avec le FEATURES à sandbox et - sandbox mais le problème est toujours là :s

Faut encore chercher...

Au fait, c'est quoi sandbox?

----------

## Temet

Après ta migration, t'as fait le fixlibtool ???

----------

## BaNaNe

Oui, je suis quasi sûr de l'avoir fait...

J'ai essayé de réemerger le libtool mais il bloque aussi la dessus :s

Que faire, que faire?

----------

## _Seth_

 *BaNaNe wrote:*   

> J'ai essayé avec le FEATURES à sandbox et - sandbox mais le problème est toujours là :s

 

Euh ? Tu as fait FEATURES= -sandbox ? En fait si tu ne veux pas de sandbox, il faut tout simplement ne pas mettre sandbox ! Par exemple avec:

```
FEATURES="sandbox parallel-fetch ccache"
```

Tu actives le sandbox, le téléchargement des sources en parallèle et le ccache. Avec :

```
FEATURES="parallel-fetch ccache"
```

Tu n'actives pas le sandbox et tu actives le téléchargement des sources en parallèle et le ccache.

 *BaNaNe wrote:*   

> Au fait, c'est quoi sandbox?

 

Une petite explication ici, sinon en résumé : quand tu emerges un nouvel ebuild, la compilation et l'installation se font dans un environnement spécial (un bac à sable), en gros un système factice, qui permet de tout installer et tester avant de tout recopier sur ton système (le vrai cette fois). L'idée est d'éviter qu'un ebuild déraille et écrase des fichiers auquel il ne devrait pas normalement toucher.

----------

## ghoti

Je n'ai pas l'impression que le sandbox soit en cause : le "signal 2" (SIGINT) est généré par le "CTRL c" : le processus "avorte" donc puisque c'est toi-même qui le demande et le sandbox intercepte simplement le signal pour pouvoir faire son petit nettoyage.

Au demeurant, il est assez dangereux de désactiver le sandbox : c'est un peu comme si tu désactivais ton firewall (dessin inutile, je crois ?  :Laughing:  )

Pour le reste, je note que le problème est survenu suite à un upgrade de gcc. Serait-il possible qu'après ton reboot, ton ancien gcc ait été réactivé ?

Que donne gcc-config -l ?

----------

## BaNaNe

Bonne nouvelle, c'est résolu!!!

Un des plus bête problème que j'ai jamais eu... tellement bête que j'ose à peine vous l'expliquer... mais bon, comme vous avez eu la gentillesse de m'aider, je vais quand même vous expliquer !

En gros, en rentrant chez moi, j'adapte le make.conf pour que ca colle à la configuration distcc des différents PC (ip, option -j,...). C'est justement au niveau de ce -j qu'il y a eu un problème... En effet, parfois, mon clavier déconne un peu (quoi que, cela ne se produit que sous linux, peut etre un problème de configuration) et il répète l'appui de la touche tout seul. Ce qui fait que là où j'avais tappé '-j8', il avait écrit quelque chose comme '-j888888'....   :Shocked: 

Et je comprend que make ne soit pas d'accord de lancer 888888 compilations en même temps!

Bha vous moquez pas de moi, ça arrive...  Il m'a fallu un jours pour m'en rendre compte mais j'ai trouvé!

Si un développer passe dans le coin, il sait quoi faire : rajouter un test pour que portage remarque quand on met une valeur 'impossible' dans le make.conf  :Wink: 

Enfin, l'emerge est reparti, tout va bien!

Merci encore pour votre aide! 

(J'en entends un qui rigole encore dans le fond :d)

----------

## _Seth_

ouaip, c'est vrai que c'est là l'interêt de poster son emerge --info et autres trucs relou qui prennent de la place dans les forums : ça évite les bourdes  :Wink: 

----------

