Comment définir le path utilisé par les applications OSX

J'utilise Mountain Lion 10.8.4 et mon environnement est personnalisé via ~/.profile sorte que lorsque j'exécute des applications charts comme Sublime Text ou Eclipse à partir de la command line

 open /Applications/Sublime\ Text\ 2.app 

ils héritent de mes parameters $PATH , ce qui permet à l'application d'exécuter des commands externes qui ne sont pas dans le path par défaut très limité d'OSX. Cependant, j'aimerais vraiment pouvoir ouvrir des programmes via Finder ou le Dock et leur donner le même path que j'utilise sur la command line. launchctl setenv PATH $PATH ne fonctionne pas dans 10.8. Comment puis-je configurer cela?

Remarque

Cela ne fonctionne plus avec les versions plus récentes d'OS X, y compris 10.10 Yosemite (je ne suis pas sûr de 10.9 Mavericks). Il fonctionne cependant avec 10.8 Mountain Lion.

En fait, ce n'est pas trop dur, mais il faut avoir des privilèges d'administrateur (en utilisant la command sudo pour écrire dans /etc ).

  1. Depuis Terminal (ou votre substitut préféré), voyez s'il y a quelque chose dans le file /etc/launchd.conf :

     cat /etc/launchd.conf 

    Si vous obtenez une erreur comme

    cat: /etc/launchd.conf: Aucun file ou directory

    puis continuez avec l'étape suivante. Si la command cat affiche du contenu, copyz-le.

  2. Déterminez le path actuel de votre système, car nous devons nous assurer de l'inclure plus tard:

     launchctl getenv PATH 
  3. Dans votre éditeur favori, créez un nouveau file text avec le contenu suivant, modifié selon vos besoins:

     setenv PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/YourUserName/bin:/path/to/gems/bin 

    Assurez-vous que vous avez inclus tout le contenu du path depuis l'étape précédente, sinon vous allez casser votre système.

    Si la command cat de l'étape 1 affiche du contenu, collez-le dans le nouveau file avant la command setenv PATH . S'il contient déjà une command setenv PATH , modifiez-la pour append les directorys supplémentaires dont vous avez besoin.

  4. Enregistrez le nouveau file dans votre directory personnel ( /Users/YourUserName ) en tant que launchd.conf .

  5. Retournez au terminal et entrez:

     sudo mv ~/launchd.conf /etc 

    pour utiliser le pouvoir d'administration pour déplacer le nouveau file vers /etc , en remplaçant tout ce qui était là avant . En fonction de votre utilisation précédente de la command sudo , vous pouvez get un court message "faites attention à ce que vous faites", mais de toute façon, vous devrez entrer votre mot de passe. /etc n'est pas directement accessible via la boîte de dialog Enregistrer des éditeurs charts sauf si vous êtes un véritable user puissant et savez comment contourner les ressortingctions du système de files d'OSX.

  6. Redémarrez votre ordinateur

Et vous devriez être tous set. Si vous êtes intéressé, launchd et launchctl utilisent la syntaxe csh / tcsh , vous ne pouvez donc pas utiliser le format d' export PATH=/usr/local/bin:... bash / zsh export PATH=/usr/local/bin:...