J'aimerais ajouter à la variable d'environnement PATH globale sous OS X afin que tous les shells d'utilisateurs et applications à interface graphique obtiennent le même environnement PATH.
Je sais que je peux ajouter au chemin d'accès dans les scripts de démarrage du shell, mais ces paramètres ne sont pas hérités par les applications à interface graphique.
Le seul moyen que j'ai trouvé jusqu'ici est de redéfinir la variable d'environnement PATH dans /etc/launchd.conf :
setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/my/path
Je ne pouvais pas trouver un moyen d'ajouter réellement PATH dans launchd.conf
.
Cette méthode m'inquiète un peu, mais jusqu'à présent, c'est la seule chose qui fonctionne. Y a-t-il un meilleur moyen?
Réponses:
Les informations de l'interface utilisateur de Palmer sont correctes, mais il existe un moyen plus facile à gérer de modifier le chemin d'accès vu par le shell. Comme dit mediaslave , vous pouvez éditer
/etc/paths
, mais encore mieux, vous pouvez déposer un fichier texte contenant/etc/paths.d/
un chemin et tous les shells le construiront correctement.Par exemple, sur mon système:
la source
X11
(moins douloureux que de se déconnecter complètement). Je n'y suis pas allé dansTerminal
.$PATH
./etc/launchd.conf
Ce
launchd.conf
fichier est ** la seule solution complète qui fonctionne pour les applications de ligne de commande et d'interface graphique sous OS X v10.8 (Mountain Lion) et v10.9 (Mavericks), qui fonctionnera avec les applications d'interface graphique et de console pour tous les utilisateurs. .Ajouter
Dans l'exemple ci-dessus, j'ai ajouté
/usr/local/bin
aux valeurs d'environnement par défaut de PATH.Gardez à l'esprit que ce fichier n'est pas un script et que vous n'avez pas la possibilité d'utiliser des substitutions. En outre, pour les appliquer, vous devez redémarrer.
Rappelez-vous, tous les autres ne sont que des solutions partielles:
environment.plist
ne fonctionne pas pour les applications lancées via Spotlight./etc/paths
- seulement pour console/etc/csh.cshrc
ou/etc/bashrc
- seulement pour quelques coquillagesCette réponse est basée sur la même question Définition des variables d'environnement sous Mac OS X .
la source
/etc/launchd.conf
.Vous allez devoir le configurer coque par coque; Les shells de type bash et csh ne partagent pas les mêmes fichiers de configuration et la même syntaxe pour l'ajustement du chemin PATH.
Essayer de faire cela dans
launchctl
ne fonctionnera pas, car les variables d'environnement sont définies lors de la connexion. ils n'existent pas à l'échelle du système sous Unix en dehors d'une session shell.Donc, vous allez vouloir ajouter
à
/etc/csh.cshrc
età
/etc/bashrc
.Si vous voulez des variables d'environnement dans les applications graphiques, c'est plus compliqué. Vous devez créer un
.MacOSX/environment.plist
fichier dans le répertoire de base de chaque utilisateur. Le.MacOSX
répertoire n'existera probablement pas par défaut, vous devrez donc le créer.Le format du fichier est comme suit:
Plus sur le
environment.plist
site Apple .la source
~/.MacOSX/environment.plist
approche n'est plus prise en charge et il n'y a pas de substitut au niveau utilisateur. Vous pouvez utiliser l’ensemble du système/etc/launchd.conf
(et il existe une solution personnalisée - *. App).Vous pouvez modifier votre chemin global en ajoutant des lignes à
/etc/paths
, un chemin par ligne.sudo nano /etc/paths
devrait vous y rendre.la source
Avez-vous consulté la page de manuel de l'
path_helper
utilitaire de ligne de commande sous OS X? J'ai répondu à une question un peu connexe sur SO que je pense que vous pourriez trouver utile.la source
Je ne suis pas sûr si quelqu'un a couvert la manière la plus simple et la plus élégante . Au moins sur Mac OS X 10.6 (Snow Leopard).
Messing avec le
[/etc/|~/.]
des[profile|bashrc]
fichiers peut fonctionner, mais il est un peu d'un hack. Le/etc/paths.d/
répertoire est le chemin à parcourir:Créez un nouveau fichier nommé
*name*
(ne lui donnez pas simplement un nom qui s'y trouve déjà)/etc/paths.d/
avec un chemin par ligne:Puis ajouter
à
profile
oubashrc
, et vous devriez être bon pour aller.la source
*name*
? Ou voulez-vous dire justename
?Je ne sais pas si launchd accepte cela, mais essayez:
la source
Je ne suis pas sûr de savoir pourquoi vous utiliseriez
/etc/launchd.conf
plutôt que/etc/profile
- mais je ne suis pas un expert en Mac OS X - je vous crois que je suis sûr que cela fonctionne, mais qu'illaunchd
s'agit de l'implémentation / remplacement de Mac OS X pourinit
- Mac OS X me confond.Quoi qu'il en soit,
setenv PATH "$PATH:/more/paths:/and/more/paths"
ça fonctionnera (tcsh), et l’équivalent de bourn shell estexport PATH="$PATH:/more/paths:/and/more/paths"
- je n’ai aucune idée de la façon dont illaunchd
est lié à un shell particulier.Je pense avoir posé plus de questions que de réponses =)
la source