Depois de muitos testes com diferentes opções, concluo:
Existe uma maneira unificada de definir os PATH
aplicativos iniciados por diferentes meios (como shell script, Finder e Spotlight)? Bem, sim e não:
- Não : a configuração de
PATH
scripts de inicialização do shell (por exemplo .bashrc
) funciona apenas para aplicativos iniciados por shells.
- Não : a configuração
PATH
do launchd
processo atual via launchctl setenv PATH <...>
não funciona para mim.
- Sim : Configuração
PATH
em /etc/launchd.conf
(e reiniciar o sistema) fará com que o apropriado PATH
visí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/paths
podem mudar a ordem dos caminhos em PATH
**.
Para acomodar shells remotos, é necessário reimportar o launchd
ambiente 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.conf
nã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.conf
que não trabalham para os reservatórios registrado em remotamente via ssh (eu assumo porque asshd
não passar seu ambiente ele herda de seu pailaunchd
para o shell filho.). - Editarei a resposta de acordo.