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.eval "$(launchctl export)"
./etc/launchd.conf
é apenas executarsudo -e /etc/launchd.conf
(se você estiver familiarizado com o vi) ouEDITOR=nano sudo -e /etc/launchd.conf
(se você preferir um editor não modal).Expandindo a resposta anterior , para alterar o caminho
/etc/launchd.conf
, faça o seguinte.Verifique se você possui privilégios de administrador.
Crie um novo arquivo de texto com o seguinte conteúdo, modificado para atender às suas necessidades:
Salve-o em seu diretório pessoal como
launchd.conf
.Abra Terminal.app (ou seu substituto favorito) e digite:
sudo mv ~/launchd.conf /etc
Dependendo do uso anterior do
sudo
comando, você poderá receber uma mensagem curta "tenha cuidado ao fazer o que está fazendo", mas, de qualquer forma, precisará digitar sua senha. Tudo o que o comando faz é mover o arquivo para o/etc
diretório, que não está diretamente acessível ao salvar um arquivo no TextEdit, por exemplo.sudo
(abreviação de "Superusuário DO") é usada porque são necessários privilégios de administrador para gravar nesse diretório.Reinicie o computador.
E você deve estar tudo pronto. Boa sorte!
fonte
launchd.conf
, mas sobre como todos os aplicativos obtêm a mesma variável PATH de maneira unificada.PATH
para as minhas aplicações GUI, e eu percebi que eu iria ajudar qualquer almas pobres pode não saber como efetuar a mudança ...Você pode tentar https://github.com/ersiner/osx-env-sync .
Ele lida com aplicativos de linha de comando e GUI de uma única fonte . E funciona com a versão mais recente do OS X (Yosemite).
fonte
launchd
sistema. Sua solução tem os mesmos problemas que os indicados na resposta aceita.