J'ai essayé toutes les méthodes dont j'ai entendu parler pour définir des variables d'environnement sur OS X 10.8, mais aucune ne semble fonctionner.
Pour tester, exécutez un script bash à partir d'une application gui comme Eclipse ou IntelliJ IDEA.
#!/bin/bash
set|grep PATH
Choses que j'ai testées et qui ne fonctionnent pas même après le redémarrage:
/etc/paths
et/etc/paths.d/something
/etc/launchd.conf
~/.bash_profile
~/.MacOSX/environment.plist
(plist binaire fait comme recommandé)- exécuté à
launchctl setenv PATH $PATH
partir de la ligne de commande, cela était censé mettre à jour le PATH pour les applications GUI, au moins pour la session en cours. Devinez quoi, pas de changement.
Il semble que PATH soit toujours PATH=/usr/bin:/bin:/usr/sbin:/sbin
pour les applications GUI.
Réponses:
Avec Mountain Lion,
/etc/launchd.conf
vous devez définir le chemin des applications GUI. N'oubliez pas que ce n'est pas un fichier de script; il ne prend en charge que leslaunchctl
commandes, vous devez donc écrire quelque chose comme:Notez également qu'il ne prend pas en charge les substitutions de variables d'environnement shell (comme
$PATH
), vous devrez donc définir chaque chemin que vous souhaitez inclure. C'est une bonne idée de conserver les chemins d'origine 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 modifications prennent effet.
la source
-bash: setenv: command not found
setenv
c'est unelaunchctl
commande, alors vous l'utilisez commelaunchctl setenv
.Cela fonctionne si vous appelez l'application GUI depuis le terminal:
Pas vraiment agréable ou confortable mais il fait le travail si nécessaire.
la source
J'ai concocté une autre solution, inspirée de Patrix One ici , qui, espérons-le, est un peu moins douloureuse. Ouvrez
Automator
, sélectionnez une application comme cible et choisissezExecute 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 simplementEnsuite, enregistrez le tout où vous voulez, et si vous devez exécuter YourApplicationHere , ouvrez à la place "l'application d' automatisation " créée.
Je l' ai testé cela avec
Terminal
comme YourApplicationHere , et je vis aveclaunchctl export
ce que FOO était en effet mis à barre . J'espère que cela fonctionne aussi pour les autres.Enfin, si vous utilisez cette solution pour vos variables d'environnement, au lieu de taper la
launchctl
substance dans le script shell, vous pouvez simplement appeler/Users/Shared/conflaunchd.sh
(que vous devez d'abord composer, avec le fichier décrivant les variables).la source
Soi-disant,
launchctl
fournitPATH
aux applications GUI. Pour définir le chemin sur celui du chemin du shell, ajoutez ce qui suit à votre fichier shell rc après avoir défini votre chemin:la source