# [GENTOO] fonctionnalité possible ?

## Bapt

avant de proposer cette fonctionnalité globalement j'aimerai en discuter pour voir si c'est réalisable ou non et dans qu'elle mesure.

Je pense qu'il serait intéressant de proposer une fonctionnalité qui permette de de ne pas réinstaller les paquets non compiléés (la majeures parties des web-apps), une grosse part des soft java (quoique), python, ruby, perl, ... ainsi que tous les applis binaires.

la plupart d'entre eux sont relativement simple et rapide à installer mais malgré tout ça peut prendre un certain temps supplémentaire qui est précieux lors d'un :

```
emerge -e world
```

 ou 

```
paludis -dl-reinstall always -i world
```

Est possible dans l'état actuel des chose ? est-il possible de savoir dans les ebuild actuels lesquels sont compilés lesquels ne le sont pas ?

Que pensez vous de l'idée ?

----------

## Tuxicomane

Ça serait sympa, et en effet ça devrait faire gagner un temps non négligeable sur un emerge -e world   :Smile: 

Pour la méthode, je connais pas vraiment, mais le plus simple serait de rajouter une variable(-s) dans les ebuilds non ?Last edited by Tuxicomane on Thu Jan 18, 2007 5:47 pm; edited 2 times in total

----------

## GaMeS

L'idée me semble tout à fais bonne  :Smile:  on gagnerais effectivement un temps précieux lors des recompilation world.

Par ailleurs l'idée de Tuxicomane me semble tout à fais valable (+1)

 *Bapt wrote:*   

> 
> 
> Est possible dans l'état actuel des choses ?
> 
> 

 

Si tu effectues la modification de chaque ebuild, ça va être fastidieux, c'est une grosse modification du système quand même.Faudrais voir avec notre relation client kopp pour voir si ça pourrais intéréssé d'autres développeurs.

----------

## Tuxicomane

Si c'est seulement fait dans chaque nouvel ebuild ça se fera lentement mais sûrement, et ça n'impliquerait qu'une modif de portage non ?

----------

## d2_racing

C'est une très bonne idée....de plus l'ajouter seulement pour les nouveaux packages c'est encore le best pour éviter des problèmes.

Je vote pour ça moi  :Smile: 

----------

## GaMeS

Oui lors d'un Bump de l'ebuild ça peut être très intéréssant  :Smile: 

----------

## d2_racing

Vous pensez que ça peut réduire le temps d'un emerge -e world de combien de temps environ.

Car lors de mon passage à GCC 4.1, ça m'a dit 28h pour faire le tout et un emerge -e system m'a pris environ 3h.

----------

## kwenspc

On en vient à pas mal d'idée sur ce topic  :Smile: 

Je suis pour aussi (le coup de la non-réinstallation d'un paquet pré-compilé).

Autre idée: ça me plairait de pouvoir faire comme apt sous debian, c-a-d ne pas avoir un enorme arbre avec tous les ebuilds etc... Et pour ça OpenEmbedded (qui est parti du système portage au départ) l'a bien compris. 

Là on aurait les qualités d'apt (y en a pas beaucoup face à portage  :Laughing:  mis à part celle dont je parle en fait) et les qualités de portage. Bref un truc bien plus rapidot. Plus de metada. Et en plus en C ou C++ gener paludis, mazette!!!   :Cool: 

----------

## titoucha

L'idée est super bonne je suis totalement pour.

----------

## _droop_

J'ai quelques objections (mais je ne suis pas contre) :

- ce qui compile pas ne prends pas de temps par rapport à ce qui compile (gcc 1h, bugzilla 2 min par exemple).

- on fait pas un emerge -e world tous les jours (enfin en theorie).

- emerge -e world permet de repartir sur quelques choses de propres je ne vois par pourquoi les choses non compilés feraient exception.

- comment tu repères de façon fiable ce qui n'est pas compilé ?

----------

## Tuxicomane

 *Quote:*   

> ce qui compile pas ne prends pas de temps par rapport à ce qui compile (gcc 1h, bugzilla 2 min par exemple). 

 

Oui mais les petits ruisseaux font les grandes rivières   :Very Happy: 

 *Quote:*   

> on fait pas un emerge -e world tous les jours (enfin en theorie). 

 

Non, en effet, mais même si c'est pas capital, ça pourrait être sympa..

 *Quote:*   

> emerge -e world permet de repartir sur quelques choses de propres je ne vois par pourquoi les choses non compilés feraient exception. 

 

Pour une "simple" mise à jour de gcc, avec un emerge -e system && emerge -e world par exemple, ça ne sert à rien de ré-extraire bugzilla vu qu'il n'a rien à voir avec gcc !

 *Quote:*   

> comment tu repères de façon fiable ce qui n'est pas compilé ?

 

Comme on disait, une simple variable dans les ebuilds suffiraient non ?   :Confused: 

----------

## Magic Banana

Même si le logiciel est écrit dans un langage scripté (Python, Bash, Perl, Ruby & co.), il est possible qu'un problème survienne parce qu'un de ces fichiers à disparu ou a été corrompu. Le type d'erreur impossible à déceler et que l'on résous jusqu'alors à grand coup de "emerge -e world"... C'est rare mais étant donné le gain négligeable en temps que vous proposez (moins de 1% lors d'un "emerge -e world"), il me semble que mieux vaut garder le statu quo. Désolé d'être rabat-joie...  :Embarassed: 

----------

## titoucha

 *Magic Banana wrote:*   

> Même si le logiciel est écrit dans un langage scripté (Python, Bash, Perl, Ruby & co.), il est possible qu'un problème survienne parce qu'un de ces fichiers à disparu ou a été corrompu. Le type d'erreur impossible à déceler et que l'on résous jusqu'alors à grand coup de "emerge -e world"... C'est rare mais étant donné le gain négligeable en temps que vous proposez (moins de 1% lors d'un "emerge -e world"), il me semble que mieux vaut garder le statu quo. Désolé d'être rabat-joie... 

 

Ta remarque est juste, il faudrait alors deux manière de faire l'emerge -e world.

- la normal: emerge -e world qui saute les fichiers binaires ou sans compilation

- la forcée: emerge -ef world qui force emerge à tout réinstaller sans sauter le binaires (le ef en option est un exemple)

----------

## Magic Banana

Je verrais plutôt un nouveau set "compiled" (qui devrait se construire un peu à la façon de "system") :

```
# emerge -e compiled
```

En tout cas l'option -f est déjà prise...

----------

## titoucha

Pour l'option comme je l'ai dit c'est un exemple, ton idée aussi est à explorer.

----------

## zarasoustra17

Personnellement, j'ai utilisé emerge -e world une seule fois en quatre ans(suite à un crash disque ou 60% des fichiers de / étaient bousillés), je pense que quand on en arrive à cette extrémité c'est bien de tout réinstaller. Maintenant suite à une mise à jour majeure(comme gcc), je me borne à réinstaller le minimum vital(glibc,binutils,baselayout...) suivie d'un revdep-rebuild et à gérer au fil de l'eau les éventuels  problèmes subsistants, et je vous garantis que ça prend beaucoup moins de temps que tout réinstaller(chez moi emerge -e world veut réinstaller 1070 packages!!).

----------

## zyprexa

Je songe à deux raisons qui rendent cette option intéressantes :

- l'économie en bande passante (précieuse de nos chers serveurs), et de temps (hum le paquetage de certains jeux id software par exemple, dont les serveurs roulent à la vitesse mirobolante de 4 ko/s   :Rolling Eyes:  )

- ajoutons à cela les ebuilds avec fetch restriction (souvent binaires, donc normalement pas besoin de recompiler), qui font s'arrêter l'emerge -e world pendant la nuit parce qu'on a nettoyé consciencieusement son /usr/portage/distfiles/. ... il est vrai qu'un scripte correct ou un parallelfetch peut régler ca.

Je n'ai moi-même pas fait souvent des emerge -e, mais ca reste des détails qui m'ont gonflé sur le coup. Si une si petite chose peut trouver suffisamment d'intéressés et peut être suffisamment facile à implanter .... why not ?

----------

## Magic Banana

Le temps de retéléchargement des sources ne devrait jamais constituer un problème car tu n'es jamais sensé retélécharger ! Ce n'est pas pour rien que les distfiles ne sont pas supprimés. Ce n'est pas pour rien non plus que les utilitaires type "eclean" ne font le ménage que parmi les fichiers qui ne seraient pas utilisés lors d'un "emerge -e world"...

----------

## zyprexa

 *Magic Banana wrote:*   

> Le temps de retéléchargement des sources ne devrait jamais constituer un problème car tu n'es jamais sensé retélécharger ! Ce n'est pas pour rien que les distfiles ne sont pas supprimés. Ce n'est pas pour rien non plus que les utilitaires type "eclean" ne font le ménage que parmi les fichiers qui ne seraient pas utilisés lors d'un "emerge -e world"...

 

Il est inutile de prendre ce ton-là ...  je ne dispose pas d'un disque dur spécialement grand, et ces téléchargement, bien que mon environnement soit plutôt "light" (pas de kde, pas de gnome), mon distfiles atteint déjà 1,5 Go ... eclean ou pas ...

J'avoue que le gaspillage de bande passante occasionné par un nettoyage de distfiles peut être contre-productif, mais bloquer tellement d'espace pour des sources qui servent qu'une fois par an (voire bien moins souvent) l'est également ... ca dépend de quel côté on se place... et je sauvegarderai ces distfiles à l'avenir.

----------

## kopp

Il faut savoir que pour pas mal de petites updates (genre les -rX), seul un patch est fourni par rapport à l'archive de base donc tu peux avoir besoins des distfiles autrement que pour un emerge -e.

----------

## Magic Banana

 *zyprexa wrote:*   

> Il est inutile de prendre ce ton-là ...

 

Euh... Excuse moi si tu as interprété les mises en gras comme un ton de reproche... Ce n'était pas le but.  :Embarassed: 

----------

