Les applications lancées via le Finder semblent ne pas respecter le PATH tel qu'il est défini dans .bash_profile
. Ainsi, lorsque j'essaie d'exécuter du code à partir d'un IDE (Intellij), je n'ai plus accès aux programmes /usr/local/bin
, qui sont normalement ajoutés à mon chemin d'accès dans le terminal.
Apparemment, .MacOSX/environment.plist
c'était la façon de procéder, mais cela ne fonctionne plus dans Lion.
Comment définir les PATH
applications lancées par le Finder?
$PATH
au cas où ça compte.)Réponses:
Si vous êtes sur 10.7 et non 10.8, la solution ci-dessous fonctionne bien:
J'ai eu le même problème avec eclipse, mais maintenant j'ai ajouté par exemple le suivant à mon
.bash_profile
et puis ça a fonctionné.Si vous souhaitez laisser le chemin d'origine intact, utilisez
à la place (ou juste
launchctl setenv PATH /my/new/path:$(launchctl getenv PATH)
).Remarque: La modification de la commande launchctl PATH ne prend effet que lorsque le Dock est "redémarré". Un nouveau processus de Dock démarrera automatiquement après que le processus actuel soit tué avec la commande:
la source
set|grep PATH
leur retour reviendra toujoursPATH=/usr/bin:/bin:/usr/sbin:/sbin
launchctl
:osascript -e 'tell app "Dock" to quit'
. Cela a semblé résoudre le problème pour moi.Pour répondre à votre question sur votre «nouveau» problème, j'ai décidé d'écrire une autre réponse, car il est plus facile de l'expliquer à l'aide d'échantillons.
Une façon de charger les variables d'environnement au démarrage de votre outil (IDE) de votre choix est comme cela peut être fait avec eclipse - je pense qu'il doit également y avoir une structure similaire dans votre outil (IDE).
Comment cela peut-il être réalisé dans eclipse - https://stackoverflow.com/questions/829749/launch-mac-eclipse-with-environment-variables-set
(légèrement réécrit sur les variables d'environnement)
Créez un fichier texte vide appelé "eclipse.sh" dans le répertoire du bundle d'applications Eclipse.
/Applications/eclipse/Eclipse.app/Contents/MacOS
Ouvrez le fichier eclipse.sh dans un éditeur de texte et entrez le contenu suivant:
Dans le Terminal, définissez le drapeau exécutable du script shell eclipse.sh, c'est-à-dire:
chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh
Ouvrez le fichier Info.plist Eclipse.app et modifiez la valeur de la clé CFBundleExecutable de eclipse à eclipse.sh.
MacOS X ne détecte pas automatiquement que le fichier Info.plist d’Eclipse.app a changé. Par conséquent, vous devez forcer la mise à jour de la base de données LaunchService dans le terminal à l'aide de la commande lsregister:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
Lors du prochain lancement du fichier Eclipse.app à partir du Dock ou du Finder, les variables d’environnement doivent être définies.
la source
Sous OS X 10.10 Yosemite, j'ai utilisé cette commande:
Sachez que cela définit le launchtl PATH pour tous les utilisateurs . Cela a bien fonctionné pour mon cas d'utilisation. Notez que vous serez invité à redémarrer votre ordinateur pour que les effets prennent effet.
la source
sudo launchctl config user path /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
redémarrer.environment.plist
dans la plupart des cas.Sur Mountain Lion, tout cela
/etc/paths
et le/etc/launchd.conf
montage n’a aucun effet!Les forums de développeurs Apple disent:
J'ai donc directement modifié l'application
Info.plist
(cliquez avec le bouton droit de la souris sur "AppName.app" (dans ce cas, SourceTree), puis sur "Show package contents
")et ajouté une nouvelle paire clé / dict nommée:
(voir: Documentation LaunchServicesKeys chez Apple )
maintenant, l'application (dans mon cas, SourceTree) utilise le chemin donné et fonctionne avec git 1.9.3 :-)
PS: Bien sûr, vous devez ajuster l’entrée Path en fonction de vos besoins spécifiques.
la source
/etc/launchd.conf
toute façon. On peut supposer que , même si les règles stipulent pas que les applications doivent utiliser leurs fichiers Info.plist pour les chemins, ils pourraient encore utiliser d' autres fichiers -/etc/launchd.conf
,/etc/paths/
ou/etc/paths.d/*
, ou `~ / .MacOSX / environment.plist. Est-il prudent de dire alors que, dans la pratique , les chemins d'accès aux applications d'interface graphique de Mountain Lion pourraient être définis dans l'un de ces fichiers?/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
comme indiqué dans une autre réponse, après avoir changé de liste de pliste et 2. ajoutez le chemin complet ici, vous ne pouvez pas utiliser PATH existant comme dans vos scripts de profil.lsregister
commande, comme l'a noté @JaakL.On Mountain Lion (10.8.4)
$PATH
est spécialement traité.launchctl setenv PATH /your/path:/here
n'a aucun effet sur les$PATH
instances in Terminal.app ou Emacs.app lancées par la suite à partir du Dock ou du Finder (alors que celalaunchctl setenv SPONG foo
fonctionne correctement). Aussi$HOME/.launchd.conf
ne fonctionne pas./etc/launchd.conf
C’est le seul moyen que j’ai trouvé d’obtenir PATH correctement partout. Malheureusement, on ne peut pas utiliser d’envars comme$HOME
ici, alors tous les utilisateurs de mon ordinateur portable ont/Users/nb/bin
sur leur ordinateur$PATH
. C'est seulement moi, alors je m'en fiche.la source
PATH
valeur que vous avez définie, mais que: lorsque vous créez un nouveau terminal, il lance un shell de connexion qui, si vous utilisez bash/etc/profile
, est exécuté , ce qui initialisePATH
la valeur renvoyée/usr/libexec/path_helper
. Si vous choisissez Shell> Nouvelle commande… et que vous exécutezenv
(pas dans un shell), vous devriez trouver quePATH
c'est la valeur que vous avez définie via launchd.Essayez de définir le chemin dans votre ~ / .profile ou ~ / .bash_profile ou ~ / .zprofile (pour zsh). Cela fonctionnait pour moi avec VimR - la lecture du PATH n’était pas possible lorsque le logiciel était lancé depuis le quai, mais elle fonctionnait lorsque le logiciel était lancé depuis le terminal. Je courais sur OSX 10.11 en passant.
Je ne suis pas assez au courant pour vous expliquer en détail pourquoi cela fonctionne. Il existe de nombreuses explications en ligne sur les différents fichiers de configuration et sur ce qu'ils font: https://stackoverflow.com/questions/415403/ quelle est la différence entre bashrc-bash-profile-and-environment
Voir également une discussion similaire ici: https://stackoverflow.com/questions/3344704/path-variable-not-properly-set-in-gvim-macvim-when-it-is-opened-from-the-finder/ 24542893 # 24542893
la source
Sur Mac OS X 10.8.4, Mountain Lion, l’environnement des chemins intègre les chemins répertoriés dans ce fichier:
Vous pouvez modifier ce fichier à l'aide d'un outil de ligne de commande, tel que
vim
la commande suivante:la source