4 votes

Définition des variables d'environnement visibles par l'interface graphique avec OS Catalina

J'ai besoin de définir un certain nombre de variables d'environnement qui peuvent être vues par les applications GUI (i.e. Xcode). Lorsque l'on travaille à partir d'un terminal, c'est trivial et il suffit d'ajouter un certain nombre de variables d'environnement. export commande à mon .bash_profile par exemple

export BOOST_INCLUDE=~/boost/boost-XXXX/boost

Malheureusement, les applications GUI ne voient pas les valeurs définies dans le champ .bash_profile . J'utilise Catalina et il semble qu'Apple modifie le mécanisme à chaque mise à jour de MacOS. De nombreux guides en ligne sont obsolètes....

Cet article : http://www.dowdandassociates.com/blog/content/howto-set-an-environment-variable-in-mac-os-x-launchd-plist/ suggère que launchctl devrait faire ce dont j'ai besoin, mais même l'exemple simple suivant ne fonctionne pas :

Dans un terminal :

/bin/launchctl setenv FOO BAR

Fermez ensuite le terminal et ouvrez-en un nouveau

Vérifier la valeur :

echo $FOO

Le résultat devrait être

BAR

Mais elle n'est pas réglée. Notez qu'il est également désactivé dans le terminal d'origine, je ne suis donc pas convaincu que la commande /bin/launchctl setenv FOO BAR fait quoi que ce soit.

Note : Il s'agit de définir la variable d'environnement pour les applications GUI et PAS seulement pour le terminal.

0 votes

Avez-vous besoin de définir ces variables en particulier dans Xcode ? Parce qu'il y a une façon plus spécifique de définir les variables env dans Xcode.

0 votes

Je cherche un moyen de définir les variables de telle sorte que je n'aie pas à les définir manuellement pour chaque projet. Ma solution actuelle consiste à utiliser des liens symboliques pointant vers la dernière version de la bibliothèque 3rd part que j'utilise (par exemple boost ou range-v3). De cette façon, dans les projets Xcode, je peux utiliser les liens et les ajuster lorsque je mets à jour la bibliothèque,

0 votes

Avez-vous essayé de démarrer Xcode à partir du Terminal comme ceci : open /Applications/Xcode.app ? Xcode devrait hériter des variables définies dans ce shell.

4voto

Al Sutton Points 3025

Exécuter launchctl setenv FOO BAR dans Terminal.app, puis quitter ( Cmd-Q ) et redémarrer Terminal.

0 votes

C'est exactement ce que l'OP dit avoir fait et que cela ne fonctionne pas

1 votes

L'OP dit a terminal Je dis Terminal.app .

2 votes

Ah, il faut souligner la différence

0voto

vivo Points 101

Pour autant que je sache, les "variables d'environnement" définies via launchctl ne sont pas visibles dans le shell et vice versa. J'ai donc défini quelques variables avec launchctl et en tant que variables shell (dans mon fichier init shell), si j'en ai besoin dans les deux, par exemple JAVA_HOME

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X