Depois de muitos testes com diferentes opções, concluo:
Existe uma maneira unificada de definir os PATHaplicativos iniciados por diferentes meios (como shell script, Finder e Spotlight)? Bem, sim e não:
- Não : a configuração de
PATHscripts de inicialização do shell (por exemplo .bashrc) funciona apenas para aplicativos iniciados por shells.
- Não : a configuração
PATHdo launchdprocesso atual via launchctl setenv PATH <...>não funciona para mim.
- Sim : Configuração
PATHem /etc/launchd.conf(e reiniciar o sistema) fará com que o apropriado PATHvisível em aplicações lançadas pelo Spotlight, Dock e Finder e, posteriormente, conchas (locais).
- Não : os shells invocados remotamente não herdam o ambiente. (Veja ... por que shells remotos via ssh NÃO herdam o ambiente .. )
Notas para a instalação de conchas:
Para o correto funcionamento de shells locais , é importante desativar o uso de /usr/libexec/path_helper, porque os caminhos padrão /etc/pathspodem mudar a ordem dos caminhos em PATH**.
Para acomodar shells remotos, é necessário reimportar o launchdambiente para o shell. Use algo como isso em seu .bashrc:
# the vexatious path stuff
eval $(launchctl export)
As conseqüências infelizes de toda a questão são:
- Não há como ter essas configurações unificadas por usuário. (
~/.launchd.confnão funciona.)
- Não é uma maneira fácil de construir o PATH a partir de diferentes fontes, usando técnicas como a expansão do diretório inicial et al.
/etc/launch.confque não trabalham para os reservatórios registrado em remotamente via ssh (eu assumo porque asshdnão passar seu ambiente ele herda de seu pailaunchdpara o shell filho.). - Editarei a resposta de acordo.