# [Résolu] Bien comprendre les flags locales / globales ?

## Skwal

Bonjour,

Toujours dans mon apprentissage de Gentoo je commence (doucement) à m'habituer à Portage. 

Zappant temporairement la configuration système au profit de l'installation logicielle je suis actuellement sur kdenlive...

Je ne suis pas sûr compris le principe entre les flags locales et globales...   :Confused: 

Quand je regarde cette page sur le package, il est conseillé (?) de mettre "handbook semantic-desktop v4l" dans la variable globale. Donc si je ne me trompe pas, pour que ce soit prit en compte par la globalité il me faut insérer ces variable dans le USE du make.conf, et pour  les USE locales les insérer dans un fichier /etc/portage/package.use/*nom_du_paquet" ? Est-ce vraiment nécessaire ou pour limiter la compilation des paquets qui les prennent en compte je pourrait éventuellement les mettre en locales, si oui aurais-je des pertes de fonctionnalités voir un problème d'installation ?

J'hésite car si je me trompe je vais devoir relancer plusieurs fois la compilation, et ceci comprend QTWebEngine qui est très longue (5/6 heures pour moi...) !

Et une fois les variables locales/globales configurées, est-ce bien la commande "emerge --update --deep --newuse @world" qui va me permettre de prendre en compte le changement ?

De plus, sur cette page kdenlive, il me conseille également de mettre "media-libs/mlt" en locale. Si je comprend bien il me faut créer/éditer le fichier "/etc/portage/package.use/kdenlive" et y insérer également "kde-apps/kdenlive  mlt" (+mlt) ? Mais si oui pourquoi n'en parle-t-il pas dans le premier lien ?

Pourriez-vous me confirmer si j'ai bien compris s'il vous plait ?

Je vous remercie.

Cordialement, SkwalLast edited by Skwal on Fri Jun 28, 2019 11:58 am; edited 1 time in total

----------

## guitou

Bonjour.

Difficile de choisir pour toi ^^

Mais si ca peut t'aider a decider, pour ton installation, les USE globaux (dans ton make.conf) s'appliqueront a tous les paquets que tu installes (si valables pour ces derniers, bien sur), tandis que les locaux (package.use) s'appliquent seulement au(x) paquet(s) specifie(s).

Et pour un paquet, sauf incomprehension de ma part, les USE globaux sont ceux definis pour l'ensemble de la distribution (et utilisables par tout paquet), les locaux ceux specifiques a un paquet. Ceci n'affecte en rien ton choix quant a leur definition pour ton systeme.

Dans la pratique, ca peut etre plus facile de definir un USE global, car tu n'as alors pas a te soucier des dependances, mais toi seul peux savoir si ca ne risque pas d'alterer le reste de ton systeme.

A toi de voir les paquets prealablement installes et susceptibelement impactes par ces use flags pour decider de la marche a suivre (voir notamment la commande: euse -i).

Voila, le tout sous reserve d'erreur: je suis certes un ancien, mais pas un cador pour autant (puis j'ai meme plus de Gentoo pour jouer avec depuis quelques mois)  :Wink: 

++

Gi)

----------

## Skwal

Bonjour Guitou,

Merci, ton commentaire m'a permis de confirmer ce que je pensais.   :Wink: 

J'ai opté pour suivre les instructions Gentoo pour les paquets car non seulement ça me permet de limiter les compilations mais de plus ça me permet aussi (enfin je pense) d'optimiser le système un maximum !

C'est l'intérêt des flags locaux et globaux d'après ce que je comprend.  :Wink: 

Pensant avoir bien compris le principe je met le sujet en résolu, encore merci ! 

Cordialement, Skwal.

----------

## YetiBarBar

Bonjour,

Attention de ne pas faire de mauvaise interprétation, on mélange ici 2 notions:

- la défintion des USE flags (global ou local)

- l'endroit ou on définit leur usage (make.conf ou fichier /etc/packages.use/*) qui définissent leur portée.

Pour éclaircir tout ça, il existe 2 types de flags:

- global: le flag aura toujours le même sens pour les paquets

- local: chaque paquets peut définir des use spécifiques, il peut y avoir des collisions de noms

Par exemple:

```
euse -i gles2
```

te renseignera sur les différents sens que peux revêtir ce use flag local. (Si tu ne dispose pas de euse, install gentoolkit)

Le second point est l'endroit où tu les instancies:

- dans la variable USE de /etc/make.conf, le USE flag, qu'il soit local ou global s'appliquera à tout ton fichier world (excepté si tu demande explicitement autre chose pour un paquets dans un fichier de /etc/portage/packae.keyword)

- dans les fichiers packages.keyword/*, celà s'applique uniquement au paquets que tu as spécifié dans le fichier, pas à ses dépendances notamment (qu'il faudra également ajouté, emerge devrait t'aider dans cette tâche). A noter que le nom de fichier dans ce répertoire n'a pas de valeur ni d'impact. C'est juste une questoin d'organisation. Perso, j'ai un seul fichier par machine pour tout ce qui est amd64 et un fichier par cible pour du crossdev.

Enfin, quelques explications sur les 2 pages que cites:

- la première page sur kdenlive te donne les use flag disponible pour le paquets kde-apps/kdenlive. Il n'y a aucune valeur exprimée de ce qu'il est recommandé ou pas, à toi de juger à coup de euse -i pour avoir les info. En fait, non, fait plutôt:

```
equery uses kdenlive
```

 pour te décider.

- la seconde page te dit qu'il existe un useflag kdenlive. Celui-ci est un flag local, définit pour le paquet mlt. A toi de voir: si tu vas installer mlt et si, dans ce cas, tu veux qu'il construise le support pour kdenlive.

----------

## Skwal

(Re)bonjour YetiBarBar,

Merci pour ces informations et commandes utiles.

 *Quote:*   

> - global: le flag aura toujours le même sens pour les paquets
> 
> - local: chaque paquets peut définir des use spécifiques, il peut y avoir des collisions de noms 

 

Je crois que j'ai bien dû mal paramétrer tout ça... Je suis en train de tenter de passer par l'overlay KDE et je me retrouve avec bien des problèmes... Je pensais que ça venais de l'overlay mais là je commence à en douter...

----------

