Aplicativos lançados via Finder parecem não respeitar o PATH como definido em .bash_profile
. Então, quando eu tento executar o código de um IDE (Intellij) não tenho mais acesso a programas em /usr/local/bin
, que normalmente é adicionado ao meu caminho no Terminal.
Pelo visto .MacOSX/environment.plist
costumava ser o caminho para fazer isso, mas não funciona mais no Lion.
Como posso definir o PATH
para aplicativos lançados pelo Finder?
$PATH
no caso que importa.Respostas:
Se você estiver no 10.7 e não no 10.8, a solução abaixo funciona bem:
Eu tive o mesmo problema com o eclipse, mas agora eu adicionei e. o seguinte para o meu
.bash_profile
e então funcionou.Caso você queira deixar o caminho original intacto
em vez disso (ou apenas
launchctl setenv PATH /my/new/path:$(launchctl getenv PATH)
).Nota: Alterar o PATH launchctl não terá efeito até que o Dock seja "reiniciado". Um novo processo do Dock será iniciado automaticamente após o atual ser eliminado com o comando:
fonte
set|grep PATH
deles retornará semprePATH=/usr/bin:/bin:/usr/sbin:/sbin
launchctl
:osascript -e 'tell app "Dock" to quit'
. Isso pareceu consertar isso para mim.Para responder a sua pergunta ao seu "novo" problema, decidi escrever outra resposta - porque é mais fácil explicar com amostras.
Uma maneira de carregar as variáveis de ambiente na inicialização de sua ferramenta (IDE) de sua escolha é como ela pode ser feita com o eclipse - acho que deve haver uma estrutura semelhante em sua ferramenta (IDE) também.
Como isso pode ser feito no eclipse - https://stackoverflow.com/questions/829749/launch-mac-eclipse-with-environment-variables-set
(ligeiramente reescrito sobre as variáveis de ambiente)
Crie um arquivo de texto vazio chamado "eclipse.sh" no diretório do pacote de aplicativos do Eclipse
/Applications/eclipse/Eclipse.app/Contents/MacOS
Abra o eclipse.sh em um editor de texto e insira o seguinte conteúdo:
No Terminal, defina o sinalizador de executável do script de shell eclipse.sh, por exemplo:
chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh
Abra o Eclipse.app Info.plist e altere o valor da chave CFBundleExecutable de eclipse para eclipse.sh.
O MacOS X não detecta automaticamente que o Info.plist do Eclipse.app foi alterado. Portanto, você precisa forçar a atualização do banco de dados LaunchService no Terminal usando o comando lsregister:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
Na próxima vez que você iniciar o Eclipse.app a partir do Dock ou do Finder, as variáveis de ambiente deverão ser configuradas.
fonte
No OS X 10.10 Yosemite, usei este comando:
Esteja ciente de que ele define o PATH de lançamento para todos os usuários . Isso funcionou bem para o meu caso de uso. Note que você será solicitado a reiniciar a sua máquina para que os efeitos se instalem.
fonte
sudo launchctl config user path /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
e reinicie.environment.plist
na maioria dos casos.Em Mountain Lion todo o
/etc/paths
e/etc/launchd.conf
edição não tem efeito algum!Fóruns de desenvolvimento da Apple dizem:
Então eu editei diretamente o aplicativo
Info.plist
(clique com o botão direito em "AppName.app" (neste caso, SourceTree) e depois "Show package contents
")e adicionou um novo par chave / dict chamado:
(Vejo: Documentação LaunchServicesKeys na Apple )
agora o App (no meu caso SourceTree) usa o caminho dado e funciona com o git 1.9.3 :-)
PS: Claro que você tem que ajustar a entrada do caminho para suas necessidades específicas de caminho.
fonte
/etc/launchd.conf
de qualquer forma. Presumivelmente, mesmo que as regras não digam que os aplicativos devemos usar seus arquivos Info.plist para caminhos, eles ainda poderiam estar usando outros arquivos -/etc/launchd.conf
,/etc/paths/
ou/etc/paths.d/*
ou `~ / .MacOSX / environment.plist. É seguro dizer então que, na prática , caminhos para aplicativos de GUI no Mountain Lion podem ser definidos em qualquer um desses arquivos?/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
como dado em outra resposta, depois de mudar plist e 2. add caminho completo lá, você não pode usar o PATH existente como nos seus scripts de perfil.lsregister
comando, conforme observado por @JaakL.No leão da montanha (10.8.4),
$PATH
é tratado especialmente de alguma forma.launchctl setenv PATH /your/path:/here
não tem qualquer efeito sobre o$PATH
em instâncias Terminal.app ou Emacs.app posteriormente lançadas a partir do Dock ou do Finder (enquantolaunchctl setenv SPONG foo
funciona bem). Além disso$HOME/.launchd.conf
não funciona./etc/launchd.conf
é a única maneira que encontrei para definir o PATH corretamente em todos os lugares. Infelizmente, não é possível usar os envars como$HOME
lá, então todos os usuários do meu laptop/Users/nb/bin
em seus$PATH
. Isso é só eu, então eu não me importo.fonte
PATH
valor que você define, mas: quando você cria um novo terminal, ele inicia um shell de login, que - se você estiver usando o bash - executa/etc/profile
, que inicializaPATH
para o valor retornado de/usr/libexec/path_helper
. Se você escolher Shell & gt; Novo Comando ... e corraenv
(não em uma concha) você deve achar issoPATH
é o valor que você define via launchd.Tente definir o caminho em seu ~ / .profile ou ~ / .bash_profile ou ~ / .zprofile (para zsh). Isso funcionou para mim com o VimR - ele não estava lendo o PATH quando lançado do dock, mas funcionava quando era lançado do terminal. Eu estava correndo no OSX 10.11 pelo caminho.
Eu não tenho um bom controle sobre isso para dar uma boa explicação do porque funciona, há muitas explicações on-line sobre os diferentes arquivos de configuração e o que eles fazem: https://stackoverflow.com/questions/415403/whats-the-difference-between-bashrc-bash-profile-and-ambiente
Além disso, veja uma discussão semelhante aqui: https://stackoverflow.com/questions/3344704/path-variable-not-properly-set-in-gvim-macvim-when-it-is-opened-from-the-finder/24542893#24542893
fonte
No Mac OS X 10.8.4, Mountain Lion, o ambiente de caminho incorpora os caminhos listados neste arquivo:
Você pode editar este arquivo usando uma ferramenta de linha de comando, como
vim
usando o seguinte comando:fonte