# [eselect] de la pertinence de l'outil

## blasserre

Bonjour à tous,

je suis tombé hier soir sur ce post :

 *pierreg wrote:*   

>  *NetFab wrote:*   Salut,
> 
>  *Quote:*   default-linux/x86/2005.1 
> 
> Essaye dans un premier temps d'upgrader ton profil :
> ...

 

et là je me dis : "oula je viens de paser mes 3 gentoo en 2006.0 avec des ln -s bien sentis"

je suis donc allé voir un peu à quoi servait eselect, 

une lecture en diagonale du code de l'engin m'amène à la conclusion suivante :

ça ne sert pas à grand chose, si ce n'est à "contextualiser" les messages en cas d'erreur

je m'interroge donc sur la dépense nécessaire pour coder de telles choses et sur la philosophie à mon sens opposée à l'esprit gentoo (les mains dans le cambouis)

ne commencerait-on pas à retomber dans les travers des yast et autres linuxconf ?

----------

## _Seth_

euh, j'ai pas trop le temps de te faire une "vraie" réponse mais c'est quand même beaucoup plus puissant que la contextualisation des messages d'erreurs. Par exemple pour les compilos, ca permet de gerer les versions à utiliser exemple :

```
eselect gcc list
```

et de gérer par la même les bonnes versions des bibliothèques à utiliser (je suis beaucoup moins sûr).

J'ai pas completement saisi la philosophie de cet outil mais il permet de faire de sloting de version : cad de faire coexister plusieurs versions d'un même programme dans ton système et de passer facilement de l'un à l'autre. Je suis désolé si c'est pas très clair, j'essayerais de te faire une réponse plus développée ce soir  :Wink: 

----------

## SnowBear

Salut,

je n'ai pas vraiment d'avis sur eselect (je ne sais pas bien m'en servir).

Mais pour eselect gcc list (qui ne marche pas chez moi Oo) , ça revient à faire ça ?  

```
palouma ~ # ls /etc/env.d/gcc/

config                            i686-pc-linux-gnu-3.4.6-hardenednopie

i686-pc-linux-gnu-3.4.6           i686-pc-linux-gnu-3.4.6-hardenednopiessp

i686-pc-linux-gnu-3.4.6-hardened  i686-pc-linux-gnu-3.4.6-hardenednossp
```

Je squate afin d'en savoir plus  :Smile: 

----------

## truc

bah, c'est comme, la plus part des outils, tu peux faire sans.. mais J'avoue que moi il me plait pas mal, tu rajoutes la completition automatique pour eselect et t'as vraimeent quelque chose de pratique, bon je ne m'en sers pas spécialement pour le lien du noyau ou pour le profil, mais pour le switch de l'opengl de xorg-x11 à nvidia, je m'en sers, c'est bien pratique:)

----------

## geekounet

eselect est tout simplement un outil destiné à rassembler tous les programmes genre gcc-config, binutils-config, opengl-update, etc. en un seul programme générique. Ça devient plus facile à gérer, pas besoin de chercher à 36 endroits.

Et si par exemple le /etc/make.profile venait à être remplacé par autre chose, on aurait pas besoin de changer la méthode pour en changer, ce sera toujours eselect profile ....

Mais effectivement, on a moins les mains dans le cambouis, mais ça m'arrange bien  :Smile: 

----------

## kwenspc

d'autant plus qu'eselect n'est pas "obligatoire". on peut toujours mettre les mains dans le cambouis

----------

## yoyo

Pour compléter le spropos de truc il me semble que l'objectif de cet outil est aussi de regrouper les différentes commandes existantes en une commande commune : 

```
$ eselect help

Usage: eselect <global options> <module name> <module options>

Global options:

  --no-color,--no-colour    Disable coloured output

Built-in modules:

  help                      Display a help message

  list-modules              Find and display available modules

  usage                     Display a usage message

  version                   Display version information

Extra modules:

  bashcomp                  Manage contributed bash-completion scripts

  binutils                  Manage installed versions of sys-devel/binutils

  blas                      Manage installed BLAS implementations

  env                       Manage environment variables set in /etc/env.d/

  kernel                    Manage the /usr/src/linux symlink

  lapack                    Manage installed LAPACK implementations

  mailer                    Manage the mailwrapper profiles in /etc/mail

  opengl                    Manage the OpenGL implementation used by your

                            system 

  profile                   Manage the /etc/make.profile symlink

  rc                        Manage /etc/init.d scripts in runlevels
```

Donc en gros ça va juste simplifier le choix des différents slots disponibles en introduisant une syntaxe commune (à terme fini les gcc-config, opengl-update, rc-update et autres scripts ayant chacuns leur propre syntaxe).

Maintenant oui, pour certaines choses comme la gestion des variables d'environnement on mettra un peu moins les mains dans le cambouis (enfin rien n'empêche de le faire de toute façon) mais pour la plupart des "modules" de eselect cela ne changera pas grand chose (opengl, gcc etc.).

Enjoy !

EDIT : grilled

----------

## blasserre

je ne remets pas en cause le coté pratique, voir même indispensable dans un contexte d'emerge.

ce qui me dérange c'est de couper l'utilisateur de la réalité du système de fichiers

et des mécanismes sous-jascents

quand j'ai découvert les profils (avec ln -s) je me suis dit : "mais sur quoi je pointe là ?"

je suis donc allé voir et j'ai (plus ou moins) compris ce qu'était un profil

si la doc m'avait conseillé de faire un eselect machin chose

cette idée ne m'aurait même pas effleuré l'esprit

et il me semble que la doc prend de plus en plus ce ton, par exemple :

le guide de mise à jour du noyau explique encore le lien symbolique 

alors que le guide nvidia par exemple ne mentionne même plus opengl-update

bref je trouve que tout ça nuit aux qualités pédagogiques de notre distrib bien aimée

----------

## Trevoke

Je trouve eselect extremement pratique : comme a deja ete dit, il regroupe tout un tas de fonctions et ca simplifie vraiment la vie.

Quant a la philosophie Gentoo, c'est "tu as le choix", pas "tu vas tout faire tout seul" ... Ca, c'est LFS  :Wink: 

Eselect apporte simplement du caractere a Gentoo en offrant un outil de plus pour cette distribution qui simplifie la vie.

----------

## yoyo

 *blasserre wrote:*   

> alors que le guide nvidia par exemple ne mentionne même plus opengl-update

 Justement, sur ce point, je ne vois pas la différence entre un opengl-update nvidia et un eslect set opengl nvidia (si ce n'est le nombre de caractères   :Wink:  ).

Pour ce qui est du "profil", je suis d'accord avec toi.

----------

## blasserre

 *yoyo wrote:*   

>  *blasserre wrote:*   alors que le guide nvidia par exemple ne mentionne même plus opengl-update Justement, sur ce point, je ne vois pas la différence entre un opengl-update nvidia et un eslect set opengl nvidia (si ce n'est le nombre de caractères   ).
> 
> Pour ce qui est du "profil", je suis d'accord avec toi.

 

 :Embarassed:   :Embarassed:  l'exemple était particulièrement mal choisi  :Mr. Green: 

@trevoke : gentoo c'est le choix, ok

mais encore faut-il avoir les informations nécessaires pour faire ce choix en connaissance de cause

le fait de déployer un tel outil et d'en favoriser l'usage par la doc risque de nous amener à un point où 

eselect devra faire d'autres choses que de définir le lien symbolique et où les gens qui ont fait le choix 

de ne pas l'utiliser se verront répondre par les devs qui ont beaucoup mieux à faire que de nous prendre par la main : 

"la methode par lien symbolique n'est plus supportée... réferez vous à la doc officielle"

----------

## _Seth_

Je suis assez d'accord avec Blasserre sur le fond : on a même plus l'occasion de savoir ce que l'on fait avec eselect. Je plussoie dans le sens d'une doc qui explique comment faire avec des ln-s, etc. et qui termine en montrant qu'on peut faire la même chose avec "eselect machin". Ca va plutôt dans le sens d'une distro libre et qui laisse le choix. Maintenant, au quotidien, je dois avouer que c'est rudement pratique (je commence à m'y mettre) et avec bash-completion, c'est ultime !

----------

## Trevoke

Question bete : vous savez ce que vous faites quand vous changez le lien? Vous savez exactement quel effet ca a sur l'OS ?

----------

## geekounet

 *Trevoke wrote:*   

> Question bete : vous savez ce que vous faites quand vous changez le lien? Vous savez exactement quel effet ca a sur l'OS ?

 

Bah ça change le make.defaults et tout ça que portage utilise : 

```
$ ls /etc/make.profile/

make.defaults  parent  virtuals
```

----------

## kopp

Trevoke : ça c'est de la remarque qui va les em****  :Smile: 

Sinon, à part le ln pour le profile, je vois pas ce que ça change de faire eselect gcc set ... plutot que gcc-config etc... (comme pour opengl update donc) a part que maintenant l'interface devient uniforme et _consitante_ (c'est le mot utilisé dans la doc de référence eselect sur www.gentoo.org)

Personnellement, je trouve cela très pratique et je trouve aussi que ça fait plus _sérieux_ pour un OS.

Après comme cela a été dit, rien n'empèche d'utiliser l'ancienne méthode.

Au passage, il semble aussi que ça fournit aux développeurs une structure facile à mettre en oeuvre pour avoir une gestion des config/profil/autre efficace.

----------

## Trevoke

D'accord -- c'est ca qui est important a savoir.

Apres, la pertinence de savoir faire un lien, je n'en doute pas, mais il faut pas se gourer quand on dit qu'on met les mains dans le cambouis. Je prefere que quelqu'un le fasse pour moi  :Wink: 

----------

## man in the hill

Salut ,

En même temps chacun utilisent gentoo à sa sauce et si tu veux bidouiller ce ne sont pas les possibilités qui manquent , tu peux coder tout ce que tu veux pour l'intégrer, utiliser les version CVS des paquets enfin tu as de quoi pour faire beaucoup de "dégats"  :Laughing: ...Gentoo devient plus abordable et c'est tant mieux pour les nouveaux utilisateurs...ensuite c'est l'envie qui te conduit sur d'autres routes...

                                                                                    @ +

----------

## blasserre

 *Trevoke wrote:*   

> ...Apres, la pertinence de savoir faire un lien....

 

la critique originale c'était plus la pertinence de pondre 120 à 150 lignes de bash pour faire un lien

et derrière ça le danger de voir des eselect timezone, eselect console_charset (quoique celui là me serait utile...)

et d'arriver au final avec un bouse qui pèse 5Mo et dont plus personne ne connaît les rouages

----------

## kopp

On n'aura pas une bouse de 5Mo vu que ce sont des modules... Tu auras toujours ton outil principal et les modules que tu auras installé (en dépendance/intégré avec les outils qui s'en servent...) Enfin, je trouve cela fort pratique !

Hop, petite lecture intéressante sur le sujet (pas facile à trouver sur le site de Gentoo à mon goût)

http://www.gentoo.org/proj/fr/eselect/user-guide.xml

http://www.gentoo.org/proj/en/eselect/dev-guide.xml

----------

## man in the hill

Merci Kopp pour les liens , c'est  plûtot une bonne chose de rassembler pleins d'outils à partir d'une base commune gérant des modules , faut apprendre à utiliser la bête...On utilise tous les jours des outils plus ou moins transparent qui font telle ou telle tâche donc moi , cela ne me pose pas de problème d'utiliser...Si eselect utilse ln -s pour me faire un lien , je ne suis déranger...Faut bien que ça devel , non   :Razz:  .

                                                                     @+

----------

## olivier elmekki

En fait, ce qui serait plutôt pas mal et pourrait régler ce problème d' "obscurantisme", ça serait de rendre eselect volubile (quitte a devoir en passer par un argument -v) en faisant afficher exactement ce qu'il execute sur stdout...

----------

## naerex

 *blasserre wrote:*   

>  *Trevoke wrote:*   ...Apres, la pertinence de savoir faire un lien.... 
> 
> la critique originale c'était plus la pertinence de pondre 120 à 150 lignes de bash pour faire un lien
> 
> et derrière ça le danger de voir des eselect timezone, eselect console_charset (quoique celui là me serait utile...)
> ...

 

Il va les peter les 5 Mo avec une super interface en QT !!! Il faudrait tout interfacer en QT  :Mr. Green: 

----------

