# [USE]USE pour un newbie [en cours]

## fouinux

Bijour tout le monde.

Voila je viens d'acheter un portable et je me suis lancé dans l'install de la gentoo.

Un truc me deroute pas mal c'est la configuration du USE dans le mke.conf. Je sais pas trop quoi mettre, vous avez choisi comment vous ? car Il y a beaucoup d'options ?

Merci  :Wink: Last edited by fouinux on Mon Nov 07, 2005 7:58 pm; edited 1 time in total

----------

## Trevoke

Il y a enormement d'options! Pour calmer les dieux vengeurs il nous faudra un sacrifice de chevre, et il faudra que tu reformattes ton titre comme dans le thread indique : "Comment se servir du forum". Merci d'avance!

Qu'est-ce qu'un USE flag? C'est explique dans le manuel. En fait, quand tu compiles un programme, tu le compiles tout betement tel quel, mais avec un USE flag, tu peux specifier d'autres options, comme par exemple, ajouter le USE flag "usb" permet d'ajouter le support pour les imprimantes USB a CUPS, et ce n'est qu'un debut.

```
* app-portage/flagedit 

     Available versions:  0.0.2 [M]0.0.3 [M]0.0.4 0.0.5

     Installed:           0.0.5

     Homepage:            http://damz.net/flagedit/

     Description:         CLI use flags and keyword editor, for system wide or /etc/portage files
```

Ca c'est tres, tres fort et tres pratique, et je te le recommande. T'es pas oblige de mettre tes USE flags des l'installation, tu peux toujous les mettre apres et faire "emerge --newuse world" pour recompiler les paquets qui se servent de ces flags.

----------

## fouinux

toutes mes excuses poour le titre j'avais oublier   :Embarassed: 

----------

## PabOu

 *Trevoke wrote:*   

> T'es pas oblige de mettre tes USE flags des l'installation, tu peux toujous les mettre apres et faire "emerge --newuse world" pour recompiler les paquets qui se servent de ces flags.

 

pas obligé, mais moi, je le recommande tout de même, à cause des dépendances, et ne pas se retrouver avec des paquets installés et qui ne nous servent pas (et puis le temps de cette compilation, ca peut aller loin si il demande, par exemple, gnome qui demande X.org, etc...)

----------

## aconcagua

Perso, à chaque fois que je vois qu'un package propose un use flag que je ne connais pas, je vais voir la description dans 

/usr/portage/profiles/use ou /usr/portage/profiles/use.local 

Et si je suis intéressé, je l'ajoute à mon /etc/make.conf si il vient de use ou dans /etc/portage/package.use si il vient de use.local

----------

## tchak

Rien ne vaus un bon example  :Smile: 

```
/etc/make.conf
```

```
###################

#tchak's make.conf#

###################

# HARDWARE

CPU="3dnow -fortran mmx mmx2 nptl nptlonly pic sse threads -symlink"

PM="-acpi -apm"

VIDEO="-directfb v4l xinerama -svga v4l2 xrandr dpms dri"

AUDIO="alsa -arts -esd -oss"

BLK_DEV="cdr cdparanoia dvd dvdr hddtemp"

NET="-ipv6 samba wifi"

OTHER="cups gphoto2 gimpprint -gpm hal dbus pcmcia ppds scanner usb xprint rtc"

#

HARDWARE="${CPU} ${PM} ${VIDEO} ${AUDIO} ${BLK_DEV} ${NET} ${OTHER}"

#

# SOFTWARE

SYS_AUTH="ldap pam acl"

X11="X gnome gtk gtk2 cairo -qt -kde -font-server sdl truetype"

MMX_AUDIO="dts openal lame flac aac audiofile mad ogg oggvorbis mikmod a52 -xmms ao musepack ffmpeg icecast"

MMX_VIDEO="avi divx4linux flash gstreamer mpeg quicktime xvid aalib libcaca theora encode -real -xine"

MMX_GFX="gif gimp imagemagick jpeg mng png svg tiff wmf exif glitz lcms pdf postscript smp djvu dvi t1lib"

WWW="xml xml2 firefox mozsvg ethereal gmail network howl -sqlite mysql -eds gtkhtml"

PROG="-perl python ruby"

MISC="bash-completion -foomaticdb gnutls spell nowin offensive unicode utf8 nautilus bzip2"

#

SOFTWARE="${SYS_AUTH} ${X11} ${MMX_AUDIO} ${MMX_VIDEO} ${MMX_GFX} ${PROG} ${WWW} ${MISC}"

#

# ALL

USE="${HARDWARE} ${SOFTWARE}"
```

----------

## Trevoke

Tchak, entre toi et moi, tu es completement cingle, mais j'avoue que c'est tres, tres beau, ce que tu as fait avec ton make.conf  :Wink: 

Le mien est.. Bordelique.

```
]CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe -mmmx -msse -msse2" #-ftree-vectorize"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j5"

PORTDIR_OVERLAY="/usr/local/portage"

# USE flag removed : [none]

USE="16bit a52 aac acl acpi aim allegro apache2 audiofile bidi bigger-fonts \

     bl bluetooth browserplugin buttons bzip2 calendar capi ccache cdb cdparanoia cdrom \

     cgi cjk clamav clamd cpudetection css dba dbus dga dio divx4linux \

     djbfft dmx dnd dpms dri dv dvd dvdr dvdread dxr3 edl elf emacs erandom \

     escreen ethereal examples exif extensions fame fastcgi fat fbcon \

     fbsplash ffmpeg fftw firefox fontconfig ftp gcc-libffi gcj gimp \

     gimpprint gkrellm gphoto2 graphviz gs high-ints icq ieee1394 imlib2 \

     ithreads jabber javacomm javascript jikes jp2 jpeg2k justify kcal kde \

     kdeenablefinal kdepim kdexdeltas lcd leim lesstif libclamav live \

     lm_sensors logitech-mouse mjpeg mmx mmx2 mmxext mng monkey moznomail \

     mozplaintext mozsvg mpeg4 mplayer msn multi-tty mythtv network nptl \

     nptlonly objc offensive openal opie pda pdf pdfkit php pic portaudio \

     posix ppds pthreads real rhythmbox rplay rtc screenshot silverxp slp \

     sockets socks5 softmmu sox speedo spl sql sse sse2 svg sysfs tga theora \

     threads tokenizer transcode type1 unicode uptimed usb utf8 v4l v4l2 vcd \

     vidix win32codecs xanim xpm xrandr xscreensaver xvid xvmc yahoo -arts \

     -bitmap-fonts -eds -emboss -fortran -gnome"

LDFLAGS="-Wl,-O1"

ACCEPT_KEYWORDS="~x86"

CCACHE_SIZE="2G"

CCACHE_DIR="/var/ccache"

PORT_LOGDIR=/var/log/portage

FEATURES="ccache"

AUTOCLEAN="yes"

#LINGUAS=" zh_CN zh_TW ja ko"

#Get a better idea?

#PORTAGE_TMPDIR=/usr/portage/distfiles/tmp

GENTOO_MIRRORS="http://mirror.etf.bg.ac.yu/gentoo http://gentoo.chem.wisc.edu/gentoo/ http://mirror.datapipe.net/gentoo http://mirror.datapipe.net/gentoo"

```

----------

## boozo

'alute

ah superbe   :Cool:   /me tout pareil que Trevoke   :Laughing:   mais je sens que je vais me laisser tenter par ton idée très vite tchak... c'est très sympa   :Smile: 

----------

## zoltix

Grand merci pour ce super make.conf je vais de meme.   C'est vachement plus clair.

Merci beucoup

----------

## spider312

 *tchak wrote:*   

> Rien ne vaus un bon example 

 ENORME, j'adore, depuis le temps que je cherche à faire ça proprement, tu seras donc mon nouvel exemple en matiere d'organisation de make.conf  :Very Happy: 

----------

## tchak

Je dois avouer que j'ai piquÃ© l'idÃ©e Ã  quelquin mais je ne sais plus ou ni quand  :Very Happy: 

----------

## anigel

Respect, tchak... Tu nous montre la voie  :Laughing:  !

Jusque-là, mon make.conf ressemblait nettement plus à celui de Trevoke qu'au tien. Ca va changer :-d ! A une différence près toutefois : je ne mets dans /etc/make.conf que les options réellement générales, dont je suis certain d'avoir besoin pour tous les paquets de mon système. Ce qui n'est par exemple pas le cas de nombreux flags multimédias (mplayer et xine, pour ne citer que les principaux softs concernés, traînent avec eux un sacré paquets de USE totalement inutiles pour le reste du système). Dans ce cas, je remplis plutôt /etc/portage/package.use (des idées, tchak ?   :Wink:  ).

----------

## spider312

 *anigel wrote:*   

> Respect, tchak... Tu nous montre la voie  !
> 
> Jusque-là, mon make.conf ressemblait nettement plus à celui de Trevoke qu'au tien. Ca va changer :-d ! A une différence près toutefois : je ne mets dans /etc/make.conf que les options réellement générales, dont je suis certain d'avoir besoin pour tous les paquets de mon système. Ce qui n'est par exemple pas le cas de nombreux flags multimédias (mplayer et xine, pour ne citer que les principaux softs concernés, traînent avec eux un sacré paquets de USE totalement inutiles pour le reste du système). Dans ce cas, je remplis plutôt /etc/portage/package.use (des idées, tchak ?   ).

 C'est vrai que y'a 2 écoles à ce niveau là, voila pourquoi je vais exprimer mon avis

Immagine, un jour tu veux installer un autre player, y'a un truc révolutionnaire qui apparait ou je sais pas quoi, tu devras copier tous ces useflags pour ce nouveau, donc personellement, je mets tous mes useflags dans le make.conf (c'est pour ça que je cherchais un moyen de le faire proprement et que la syntaxe de tchak me plait bien) et dans le package.use, que les use qui s'opposent à mes use généraux (par exemple -gtk pour mplayer) et les trucs super spécifiques (xchattext pour xchat)

Bien sur, ça c'es tla façon générale de faire, après j'adapte selon les cas, les besoins, les soucis, etc ... , et puis ça me permet de commenter chaque ligne du package.use, histoire de pas me demander dans 1 an et demi pourquoi j'ai tel use bizare

Bon, je pense pas qu'il y ait une façon de faire, c'est comme le kernel modulaire ou monolithique, vim ou em... euh non, j'ai rien dit   :Laughing:  , chacun prends la solution qui lui parait la meilleure

----------

## fouinux

Et toutes ces options vous les trouvez comment ?? En lisant toute la doc ?

----------

## tchak

hmm

Je me prend pas la tÃªte temps que Ã§a... Si je veux xvid dans xine, je le veux aussie dans les autres truc multimedia que j'installe...

Je prefer proceder par "je prend tout, et puis je virs" :

```
/etc/portage/package.use
```

```
sys-libs/glibc userlocales

media-gfx/gimp-print -gtk

app-text/ghostscript -gtk

sys-devel/gcc -gtk

media-gfx/sane-backends -gphoto2 -v4l

media-libs/smpeg -gtk

media-sound/lame -gtk

net-wireless/irda-utils -gtk

app-cdr/cdrtools -crypt

net-analyzer/nmap -gtk

app-cdr/cdrdao -gnome

net-wireless/bluez-utils -pcmcia

app-crypt/gnupg -X

media-gfx/inkscape bonobo inkjar -plugin -effects

app-admin/gnome-system-tools -samba

media-libs/libquicktime -gtk

net-im/amsn-cvs -imlib

net-fs/samba -mysql

games-rpg/eternal-lands netthread

net-fs/nfs-utils nonfsv4

www-client/mozilla-firefox -gnome

app-shells/tcsh perl

net-im/gaim -spell

games-roguelike/nethack -gnome

sys-libs/pam pam_console

sys-apps/hal pam_console
```

Je comprend pas pourquoi des fois "gtk" veux dir gtk1 et des fois gtk2

```
/etc/portage/package.mask
```

```
<=x11-libs/gtk+-1.2.10-r11
```

----------

## tchak

 *fouinux wrote:*   

> Et toutes ces options vous les trouvez comment ?? En lisant toute la doc ?

 

par exemple : (-v pour afficher la liste des USE)

```
emerge -pv mplayer
```

En suite moi je regarde ce qu'il traine et je me dis : j'ai pas envie qu'il m'instale 20 dÃ©pendances j'aimrais bien rÃ©duir au moins Ã  10  :Very Happy: 

Alors je regarde si il y'a dans les use du hardware que j'ai pas (nvidia ?), des codecs dont je n'en veux pas (c'est rare par ce que je prend tout de ce cÃ´tÃ© la, trop de gens tordu qui balancent des liens encodÃ© avec des applications obscures), suport pour des aplications je n'utilise pas (xmms ?) etc...

Pour moi les USE c'est une question de logique, la plus parts sont assais explicites.

----------

## Enlight

 *tchak wrote:*   

> Je dois avouer que j'ai piquÃ© l'idÃ©e Ã  quelquin mais je ne sais plus ou ni quand 

 

https://forums.gentoo.org/viewtopic-p-2171889-highlight-.html#2171889 je devais trop jouer avec composite à cette époque   :Wink: 

Mais 'tation j'ai appris ce matin même qu'on avait copyright sur nos posts   :Mr. Green:   :Mr. Green:   :Mr. Green: 

----------

## TGL

Bon bah puisque chacun y va de sa petite expérience en la matière, voilà, en vrac, comment moi je gère mes USE flags. En partant de rien (install' toute fraiche), ça donne ça :

la première chose que je fais, c'est de désactiver les flags automatiques. Vous voyez pas ce que c'est ? C'est une feature de Portage qui fait que quand tu installes, par exemple, MySQL, et bah après le flag "mysql" est activé globalement. Cf. /usr/portage/profiles/base/use.defaults pour vous faire une idée des flags susceptibles d'être ainsi automatiquement enclenchés, et par quels paquets ils le sont. Perso je trouve que ça fais plus de mal que de bien, beaucoup trop de surprises, donc basta, avec ça dans /etc/make.conf : 

```
USE_ORDER="env:pkg:conf:defaults"
```

 (la valeur par défaut étant "env:pkg:conf:auto:defaults", donc bref je vire le "auto" quoi...)

ensuite, un petit "emerge info | grep ^USE" pour voir ce qui est activé par défaut. Ne restent là dedans que les flags qui viennent du profile utilisé. Et je commence à remplir le USE de mon /etc/make.conf avec quelques suppressions des trucs que je veux vraiment pas, genre "-apm -arts -eds -kde -xmms".

viens une petite vérification de tout ça avec un "emerge -pvuDN world" pour voir en quoi mon système installé diffère de cette première configuration. Il s'agit de regarder bien droit dans les yeux les flags marqués par des étoiles, et d'ajuster sa config en fonction de ça. Notament, avec la désactivation des auto-USE, on peut avoir quelques flags qui se sont retrouvés désactivés alors qu'on en a quand même besoin, donc ceux là je les remets dans mon make.conf. Et puis globallement, je regarde un peu tous les flags qui concernent ce petit système de base, et j'en rajoute quelques uns. Et quand je suis content,  "emerge -uDN world".

avec ça, j'ai une bonne base... Le reste, je le fais vraiment au fur et à mesure que j'installe de nouveaux paquets : je passe toujours par des "emerge -pv ...", et je lis les descriptions des flags concernés¹. Et j'active ce que j'ai à activer, soit dans /etc/make.conf, soit dans /etc/portage/package.use. Le choix entre les deux emplacements dépend en gros de ça :

si flag local (ceux de use.local.desc), alors /etc/portage/package.use. Sauf éventuellement si je vois qu'il concerne déjà 4 ou 5 paquets, ce qui indique qu'il sera probablement un jour un flag global, auquel cas je le traite comme tel.

si flag global qui mange pas de pain et dont je suis sûr qu'il m'intérresse partout où il est disponible, comme par exemple un codec vidéo, alors /etc/make.conf. Bon, et même si il m'intérresse partout sauf sur une ou deux exceptions, je l'active dans /etc/make.conf quand même et je rajoute les "-flag" qui vont bien dans /etc/portage/package.use.

si flag global susceptible d'avoir 36 utilisations radicalement différentes d'un paquet à l'autre et que je ne suis pas sûr que toutes m'intéressent, alors plutôt /etc/portage/package.use. C'est le cas par exemple de "mysql" ou "postgresql" : je veux pouvoir acceder à ces bases de données depuis PHP, mais je ne veux pas pour autant m'en servir pour gérer mes comptes PureFtpd.

Et puis voilà, après quelques temps on se retrouve avec une centaine de flags dans /etc/make.conf et 200 lignes de /etc/portage/package.use, mais c'est pas grave, ça c'est fait tranquillement au fur et à mesure, presque sans fatigue...

¹ pour lire la description d'un flag, y'a sûrement plein de méthodes. Perso, c'est une petite fonction dans mon environnement bash, qui traine là depuis toujours : 

```
usedesc () {

    local portdir=$(sed -n 's:^PORTDIR=::p' /etc/make.conf);

    [ -z "$portdir" ] && portdir=/usr/portage;

    grep -h "$1.*\ -\ " ${portdir}/profiles/use.* | gawk -F' - ' '{ printf (" \033[32;01m* \033[31;01m%s \033[0;01m- \033[36;01m%s\033[0;0m \n", $1, $2) }'

}
```

 ...mais il y a aussi des scripts plus standards qui font ça, genre "euse -i le_flag".

PS : et non, perso j'ai pas organisé mon make.conf comme tchak ; le mien ressemble plus à celui de Trevoke (un gros paquet, par ordre alphabétique et sur plusieurs lignes). C'est effectivement une bonne idée ceci dit. Le seul problème que je vois, c'est que ça doit mal se passer avec les outils d'édition de flags à la flagedit ou euse, mais si on les utilise pas alors pourquoi pas...

----------

## Enlight

C'est dingue, j'viens de ressentir la présence de TGL, plein d'astuces me sont venues à l'esprit, un peu comme s'il essayait de poster depuis l'au delà!

----------

## spider312

Ah, j'avais pas vu le but du post' initial, et c'est en effet "comment trouver les uses", eh bien une chose est claire, ça se fait au fur et à mesure, la petite série d'installations que tu dois faire après l'installation (xorg, WM, browser, etc ...) va en faire une grosse partie

Personellement, j'ai un alias de emerge sur emerge -av --tree, ce qui permet à chaque install de visualiser quels paquets vont être installés (-a), avec quels flags (-v), et quel paquet dépendant de quel paquet (--tree), et de dire si on veut ou non faire cette installation (-a)

Et là, à chaque paquet un peu nouveau, je regarde les uses, dès qu'il y a des dépendances, je regarde les uses du paquet qui les a provoquées pour voir si ce n'est pas une dépendance innutile, etc., bref, presque à chaque installation, je modifie mes uses en fonction des dépendances essentiellement

Après, il y a des paquets fédérateurs, comme mplayer par exemple, qui doit bien avoir sa petite 50aine de uses, ça aide à avoir une jolie liste  :Wink: 

Au passage, si tu as changé tes uses, et recompilé les paquets selon ces uses (emerge -uDN world), tu risques d'avoir des paquets installés par des dépendances, mais non supprimés, tu peux les chasser à coup de emerge depclean (attention, c'est dangereux, mieux vaut le faire pour avoir la liste des paquets, désinstaller à la main les paquets dont on est sur, et se poser des questions pour les autres, si certains sont nécéssaires, les ajouter à world, enfin une fois que c'est fait, le faire régulièrement fait que la liste est courte et facile à controler, personellement, je le fais à chaque unmerge et à chaque mise à jour du système)

Et puis au passage, je tiens à rappeler que les USE sont des données qui ne sont pas strictes, ce n'est écrit nulle part que le USE gtk correspond à GTK1, GTK2, je pourrais très bien créer un ebuild avec comme use "gtk" qui activerais le support IPv6, tout ça dépend donc du mainteneur de l'ebuild, voila pourquoi les USE peuvent avoir un sens différent selon le paquet, ce qui rends indispensable l'usage du packages.use (je suis totalement allergique à gnome, mais pour un paquet, je dois avoir le support gnome, car il active je sais plus trop quoi comme support GTK, mais le mainteneur à mis gnome comme nom), et donc, c'est très dur de savoir exactement ce que va faire un use sur un paquet, je crois qu'il y a un site qui traite de ça

----------

## TGL

 *spider312 wrote:*   

> Et puis au passage, je tiens à rappeler que les USE sont des données qui ne sont pas strictes, ce n'est écrit nulle part que le USE gtk correspond à GTK1, GTK2, je pourrais très bien créer un ebuild avec comme use "gtk" qui activerais le support IPv6, tout ça dépend donc du mainteneur de l'ebuild, voila pourquoi les USE peuvent avoir un sens différent selon le paquet

 

Techniquement, tu as raison, les noms de flags utilisés dans les ebuilds n'ont de signification que celle que le mainteneur veux bien leur donner. Ceci dit, les mainteneurs sont quand même censés en faire des utilisations qui respectent la description officielle (profiles/use.desc). Et quand aucun flag existant ne correspond à ce qu'ils veulent exprimer, ils peuvent toujours en créer un.

En fait, je crois que le problème de la multiplicité des significations de certains flags, ça n'est pas tant que les descriptions officielles ne sont pas respectées, mais plutôt que souvent elles sont tellement vagues qu'elles ne veulent plus dire grand chose : prends "mysql" par exemple... « Adds mySQL support »... certes... mais le support générique de mySQL par un langage de programmation comme PHP, c'est une toute autre chose que l'utilisation de mySQL comme un moyen de stockage de ses données par un logiciel particulier, et pourtant les deux respectent bien la description officielle.

C'est devenu un vrai problème pour l'utilisateur je trouve, et il est souvent remis sur la table des mailing-lists gentoo-dev@ ou gentoo-portage-dev@. Avec un peu de chance, une prochaine version de portage pas si éloignée pourrait apporter un élément de solution : les mainteneurs pourraient ajouter dans use.local.desc des descriptions spécifiques à leurs paquets pour des flags qui sont pourtant globaux, et on aurait des options d'emerge pour afficher ces cas particuliers. Par exemple, le flag "ibm" a pour description globale « Add support for IBM ppc64 specific systems », mais il a aussi déjà quelques descriptions particulières, ce qui donnerait : 

```
% emerge -pv --use-desc-special sysvinit genkernel

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild   R   ] sys-apps/sysvinit-2.86-r2  -bootstrap -build -ibm (-selinux) -static 0 kB

[ebuild  N    ] sys-kernel/genkernel-3.3.6  -bootsplash -ibm 5,145 kB

Total size of downloads: 5,145 kB

These USE flags have a package-specific description:

sys-apps/sysvinit

    ibm - adds support for hvc consoles

sys-kernel/genkernel

    ibm - Install IBM pSeries config as default instead of G5 config.
```

----------

## spider312

Ah ouais, ça ce serait bien en effet, si bien respecté bien sur  :Wink: 

----------

## boozo

ben... moi en reste baba   :Shocked:   une fois de plus... ce qui se conçoit bien s'énonce clairement... et les mots pour le dire...  :Wink: 

merci pour la leçon TGL   :Cool: 

[Edit] en fait avec gentoo c'est un peut comme dans la vie... la première fois on fait du zèle et on se plante ; la seconde on y va gaiement normal on connait et pis on se plante qd même c'est l'excès de confiance ; et puis finalement à la troisième on commence à comprendre qu'on avait rien compris du tout les deux fois précédentes et on corrige le tir au coups par coups et finalement on s'en sort pas trop mal en se disant que la prochaine fois ce sera le top   :Smile: 

----------

## El_Goretto

Sniifff, que c'est beau... Un chef d'oeuvre de fichier de conf, une leçon magistrale et de la poésie...

Des threads comme çà, moi, ça me tire la larmichette   :Smile: 

Encore, encore!!   :Very Happy: 

Et paf, encore un ctrl-D des familles.

----------

## fouinux

Et pour une premiere install sur un porable avec amd sempron vous me conseillez quoi comme USE et comme CFLAG (c'est quoi l'archictecture d'un sempron ?)

Merci pour tout !!

----------

## yoyo

 *fouinux wrote:*   

> Et pour une premiere install sur un porable avec amd sempron vous me conseillez quoi comme USE et comme CFLAG (c'est quoi l'archictecture d'un sempron ?)
> 
> Merci pour tout !!

 Pour les CFLAGS, j'ai ça pour mon sempron : 

```
CFLAGS="-march=athlon-xp -Os -pipe -fomit-frame-pointer -pipe -mmmx -msse -m3dnow"
```

 Mais il me semble qu'il y a eu deux types de sempron le premier était un athlon-xp avec moins de cache (sur socket A) comme le mien (d'où les CFLAGS) et un sur base d'athlon64 sans le jeu d'instruction 64 bits (sur socket 754).

Pour les USE, tout dépend de ce que TU veux. C'est le principe et la flexibilité de ce système : s'adapter à TES besoins.   :Wink: 

----------

## naerex

Personnellement je suis un fana de la commande 'euse' de l'ebuild gentoolkit

Je procède toujours de la même façon:

emerge truc -pv

si je vois un USE que je ne connais pas je fais un 'euse -i bidule' et s'il m'intéresse je fais 'euse -E bidule' pour le rajouter directement dans le make.conf

on peut en ajouter plusieurs a la suite: euse -E bidule machin chose et pour les enlever c'est -D au lieu de -E

Le voici et je précise que mes use se sont ajoutés au fil du temps:

```

CFLAGS="-O2 -pipe -march=pentium-m -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

USE="-ipv6 mmx sse -gnome alsa divx4linux dvd dvdread i8x0 mmx2 network \

     rtc sse2 tga xvid -directfb wifi tiff bzip2 nptl nptlonly \

     userlocales samba mmap lzo hal -mysql svg -java jpeg2k ieee1394 \

     flac mmxext mng wmf -mozilla aac ffmpeg freetype -stream cdda \

     cddb cdio win32codecs -xmms -esd xosd wxwindows -apm -nfs \

     cups -gtk xscreensaver threads dv matroska dga svga real xine \

     -gstreamer oss -tcltk joystick theora pci -arts unicode \

     -kdeenablefinal pcmcia libclamav winbind musepack"

GENTOO_MIRRORS="ftp://ftp.proxad.net/mirrors/ftp.gentoo.org/"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

PORTAGE_NICENESS=5

LINGUAS="fr"

PORTDIR_OVERLAY=/usr/local/portage

```

----------

## -KuRGaN-

Ben moi je suis plutôt minimaliste dans le make.conf mais je joue beaucoup avec le fichier package.use   :Wink: 

Sinon sympa le euse, je connaissai pas. Vais voi s'il y a une option pour rajouter le use directement dans le fichier package.use au lieu du make.conf   :Rolling Eyes: 

----------

## anigel

En fait, le fait de dispatcher un max de USE flags dans /etc/portage/package.use m'est venu lorsque mplayer a décidé de passer par realplayer pour lire les fichiers du même nom. Ce jour-là, mon flag real a pris 2 significations différentes :

pour xine, il signifiait : activer le support real via les win32codecs (là, on est copains)

pour mplayer : compiler realplayer, et, comme dépendance, X11 (là, c'est la guerre !)

Ce qui ne m'enchantait guère, dans le cadre d'un lecteur multimedia sous framebuffer... Et peu à peu, la liste des flags grossissant, les problèmes du même type se sont multipliés. D'où, peu à peu, plein de USE flags que j'ai déporté vers ce fichier spécifique. Je vous l'accorde, il n'est pas beau à voir. Mais par contre, j'ai un système compilé "au poil de c...", comme dirait Perceval  :Laughing:  ! Je ne me sers plus de make.conf que pour activer / désactiver des fonctions dont je ne veux nulle part (mmx sse sse2 doc -X -qt, etc...).

Sinon, pour répondre à la question de départ, pour démarrer tranquillement, app-portage/ufed me paraît assez "user-friendly".

----------

## Enlight

 *anigel wrote:*   

> En fait, le fait de dispatcher un max de USE flags dans /etc/portage/package.use m'est venu lorsque mplayer a décidé de passer par realplayer pour lire les fichiers du même nom. Ce jour-là, mon flag real a pris 2 significations différentes :
> 
> pour xine, il signifiait : activer le support real via les win32codecs (là, on est copains)
> 
> pour mplayer : compiler realplayer, et, comme dépendance, X11 (là, c'est la guerre !)
> ...

 

Ahhhh ben ça me rassure de savoir que je suis pas le seul à apprécier!!!!!!

----------

## _droop_

 *-KuRGaN- wrote:*   

> Ben moi je suis plutôt minimaliste dans le make.conf mais je joue beaucoup avec le fichier package.use  
> 
> Sinon sympa le euse, je connaissai pas. Vais voi s'il y a une option pour rajouter le use directement dans le fichier package.use au lieu du make.conf  

 

+1

Je prefere aussi avoir le moins de USE possible dans le make.conf (avec des uses vraiment générique genre "alsa" "-oss" "-gnome").

Et rajouter le reste dans /etc/portage/package.use. (exemple : "sys-libs/glibc userlocales"). Je trouve ca plus propre.

----------

## fouinux

Au final vous me conseillerez quoi pour make.conf ? l'ordi est un portable sempron mobile (hp nx 6125 sur ldlc sans os), et l'utilisation sera principalement bureautique multimedia sous kde.

Je ne sais pas non plus qu'elle architecture mettre (march).

----------

## -KuRGaN-

Ben déja pour es use si tu veux KDE tu peux déja mettre:

```

 kde qt arts -gnome -gtk -gtk2 alsa

```

Ensuite il faut voir selon ton hardware et si tu veux par exemple que tout tes paquets soit compilés avec certaines options ou non.

----------

## _droop_

 *-KuRGaN- wrote:*   

> Ben déja pour es use si tu veux KDE tu peux déja mettre:
> 
> ```
> 
>  kde qt arts -gnome -gtk -gtk2 alsa
> ...

 

erf non, pas arts...   :Laughing: 

----------

## legabier

uname -mpi

Ensuite, vas faire un tour là:

http://gentoo-wiki.com/Safe_Cflags

Édit: Oups, oublié de voir la deuxième page,... j'suis juste en retard d'un mois,...   :Laughing: 

----------

## Mickael

Salut,

il y a aussi le site gentoo-portage.com http://www.gentoo-portage.com/Language qui te donnera les USE pour chacun des ebuilts de l'arbre.

Alors si tu, vous ne voulez pas sur-charger votre make.conf et y mettre que les USE que je qualifierais de systeme ou généraux, allez voir du coté de ce site et remplissez /etc/portage/package.use. 

Exemple bidon : 

```
echo "x11-libs/wxGTK -gtk2 -opengl" >> /etc/portage/package.use
```

----------

## anigel

Bonjour,

Je reviens, de nombreux mois après la bataille, sur ce sujet qui m'avait poussé à modifier la façon dont je gérais mes USE flags, en suivant l'exemple de tchak. Petit rappel...

 *tchak wrote:*   

> 
> 
> ```
> CPU="3dnow -fortran mmx mmx2 nptl nptlonly pic sse threads -symlink"
> 
> ...

 

Propre, et j'ai utilisé cette méthode depuis un bon moment déjà... Mais (oui, il y a un mais  :Wink: ) dans certains cas bien précis, on peut rencontrer des problèmes avec ce type de configuration. Je m'explique : j'ai monté récemment une image Gentoo avec Gnome, KDE, et tout le toutim. Pour configurer les USE flags, j'avais créé une catégorie nommée CPU, une autre nommée VIDEO, etc... et une autre nommée PIC (pour l'anglais PICtures), qui contenait les formats d'images que je voulais supporter.

```
PIC = "exif gif jpeg jpeg2k png svg tiff wmf"
```

Tout se passait bien, jusqu'à ce que j'en arrive à vouloir installer gnome, dans les dépendances duquel on trouve ffmpeg. Or, ce dernier utilise, dans on ebuild, une variable appelée... PIC. Et cette "collision de nommage" aboutit tout simplement à une erreur qui m'est restée totalement incompréhensible depuis près de 10H  :Laughing: .

Donc... Prudence avec ce système de nommage, qui peut réserver des surprises originales  :Confused:  !

----------

## ghoti

 *anigel wrote:*   

> Donc... Prudence avec ce système de nommage, qui peut réserver des surprises originales  !

 

Peut-être faudrait-il rendre tes noms de variables un peu moins triviaux, par exemple, en les préfixant : ani_CPU, ani_AUDIO, ani_PIC, ...

----------

## anigel

C'est ce que j'ai fait, effectivement... Mais en les rendant nettement plus compliqués en fait. Ca ressemble à ça maintenant :

```
<machine>_USE_CPU = "bla bla bla"
```

Ca me permet en plus de regrouper les USE flags de toutes les machines dont je m'occupe dans un endroit unique, et de les extraire facilement avec un grep (et pourtant, la Chandeleur est encore loin...)

==>> [ ]

----------

## raoulp

Salut,

Ce que j'aimerais bien, serait de pouvoir trouver le fichier par lequel le flag est mis en place (en plus du /etc/make.conf) sans chercher dans /usr/portage/profiles/... . Et aussi de savoir si un flag est en double. C'est posssible ? Je suis peut-être maniaque  :Smile:  .

----------

## ghoti

equery avec l'option hasuse devrait faire l'affaire  :Wink: 

----------

## raoulp

Merci mais je crois que ce n'est pas tout à fait ce que je recherche ou je me suis mal expliqué  :Smile:  .

Les flags de la variable USE peuvent provenir de plus fichiers :

/etc/make.conf

/usr/portage/profiles/default-linux/make.defaults

/usr/portage/profiles/default-linux/x86/make.defaults

(...)

Ce que je souhaiterais, serait pour un flag donné (X par exemple), trouver le fichier contenant la variable USE="... X ...". La commande equery avec hasuse ne travaille que sur les paquets.

Ca doit être possible avec un script bash (grep, etc...) encore que, mais n'y a t-il rien d'existant permettant cela ?

----------

