Après de nombreux essais avec différentes options, je conclus :
Y a-t-il un manière unifiée pour définir le PATH
pour les applications lancées par différents moyens (comme le shell script, le Finder et Spotlight) ? Eh bien, oui et non :
-
Non : Réglage
PATH
dans le shell démarrer scripts (ex. .bashrc
) ne fonctionne que pour les applications lancées par des shells.
-
Non : Réglage
PATH
pour l'actuel launchd
processus via launchctl setenv PATH <...>
ne fonctionne pas du tout pour moi.
- Oui : Réglage
PATH
sur /etc/launchd.conf
(et le redémarrage du système) fera en sorte que le programme approprié PATH
visible dans les applications lancées par Spotlight, Dock et Finder, puis dans les shells (locaux).
-
Non : Les shells invoqués à distance font pas héritent de l'environnement. (Voir ...pourquoi les shells distants via ssh n'héritent PAS de l'environnement... )
Notes pour la mise en place des coquilles :
-
Pour un bon fonctionnement en local Il est important de pour de coqu coqu coqu il est important éteindre l'utilisation de /usr/libexec/path_helper
car les chemins par défaut dans /etc/paths
pourrait changer l'ordre des chemins dans PATH
.**
-
Pour s'adapter à distance vous devez réimporter le launchd
dans le shell. Utilisez quelque chose comme ceci dans votre .bashrc
:
the vexatious path stuff
eval $(launchctl export)
Les conséquences malheureuses de toute cette affaire sont :
- Il n'y a aucun moyen d'avoir ces paramètres unifiés sur une base par utilisateur. (
~/.launchd.conf
ne fonctionne pas).
- Il n'y a pas de moyen facile de construire le PATH à partir de différentes sources en utilisant des techniques comme l'expansion du répertoire personnel et autres.