14 votes

Comment changer la variable d'environnement PATH pour OS X 10.8 Mountain Lion qui sera visible pour les applications GUI ?

J'ai essayé toutes les méthodes dont j'ai entendu parler pour définir les variables d'environnement sous OS X 10.8, mais aucune d'entre elles ne semble fonctionner.

Pour tester, exécutez un bash script depuis une application gui comme Eclipse ou IntelliJ IDEA.

#!/bin/bash
set|grep PATH

Les choses que j'ai testées et qui sont ne fonctionne pas même après un redémarrage :

  • /etc/paths y /etc/paths.d/something
  • /etc/launchd.conf
  • ~/.bash_profile
  • ~/.MacOSX/environment.plist (plist binaire fait comme recommandé)
  • en cours d'exécution launchctl setenv PATH $PATH à partir de la ligne de commande, ce qui était censé mettre à jour le PATH pour les applications GUI, au moins pour la session en cours. Devinez quoi, aucun changement.

Il semble que PATH soit toujours PATH=/usr/bin:/bin:/usr/sbin:/sbin pour les applications GUI.

8voto

Mark Daynes Points 1

Avec Mountain Lion /etc/launchd.conf est l'endroit où vous devez définir le chemin des applications GUI. Rappelez-vous que ce n'est pas un fichier script ; il supporte seulement launchctl Vous devriez donc écrire quelque chose comme :

setenv PATH /new/path:/usr/bin:/bin:/usr/sbin:/sbin

Notez également qu'il ne prend pas en charge les substitutions de variables d'environnement de l'interpréteur de commandes (telles que $PATH ) donc vous devrez définir chaque chemin que vous voulez inclure. C'est une bonne idée de garder les chemins originaux que vous avez mentionnés ( /usr/bin:/bin:/usr/sbin:/sbin ).

Vous devrez redémarrer après avoir modifié (ou créé) le fichier pour que les changements prennent effet.

4voto

nohillside Points 82672

Cela fonctionne si vous appelez l'application GUI depuis le Terminal :

PATH=/this/is/kind/of/crazy:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin /Applications/Automator.app/Contents/MacOS/Automator 

enter image description here

Ce n'est pas vraiment agréable ni confortable, mais cela fait l'affaire si nécessaire.

3voto

Banjer Points 3754

J'ai trouvé une autre solution, inspirée par patrix one ici qui, espérons-le, est un peu moins douloureux. Ouvrir Automator sélectionnez une application comme cible, et choisissez Execute Shell script (ou quel que soit son nom, en allemand c'est "Shell-Skript ausführen" comme on peut le voir ci-dessus) comme action. Dans le script, tapez simplement

launchctl setenv FOO1 bar1
[...]
launchctl setenv FOOn barn
open -a YourApplicationHere

Ensuite, sauvegardez le tout où vous voulez, et si vous avez besoin d'exécuter Votre candidature ici Ouvrez l'application "automator" créée à la place.

Je l'ai testé avec Terminal comme Votre candidature ici et a vu avec launchctl export que FOO était en effet réglé sur bar . J'espère que cela fonctionnera aussi pour les autres.

Enfin, si vous utilisez este pour vos variables d'environnement, au lieu de taper l'option launchctl dans le shell script, vous pouvez simplement appeler /Users/Shared/conflaunchd.sh (que vous devez d'abord créer, ainsi que le fichier décrivant les variables).

-1voto

XTL Points 690

Apparemment, launchctl fournit PATH aux applications GUI. Pour définir le chemin d'accès à celui du shell, ajoutez ce qui suit à votre fichier rc du shell après avoir défini votre chemin d'accès :

launchctl setenv PATH $PATH

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