Tentei todos os métodos que ouvi falar para definir variáveis de ambiente no OS X 10.8, mas nenhum deles parece funcionar.
Para testar, execute um script bash de dentro de um aplicativo GUI como Eclipse ou IntelliJ IDEA.
#!/bin/bash
set|grep PATH
Coisas que testei e que não estão funcionando mesmo após a reinicialização:
/etc/paths
e/etc/paths.d/something
/etc/launchd.conf
~/.bash_profile
~/.MacOSX/environment.plist
(lista binária feita conforme recomendado)- executando a
launchctl setenv PATH $PATH
partir da linha de comando, isso deveria atualizar o PATH para aplicativos da GUI, pelo menos para a sessão atual. Adivinha o quê, nenhuma mudança.
Parece que PATH é sempre PATH=/usr/bin:/bin:/usr/sbin:/sbin
para aplicativos GUI.
macos
path
environment-variables
sorin
fonte
fonte
Respostas:
Com o Mountain Lion
/etc/launchd.conf
é onde você deve definir o caminho dos aplicativos da GUI. Lembre-se de que não é um arquivo de script; Ele suporta apenaslaunchctl
comandos, então você deve escrever algo como:Observe também que ele não suporta substituições de variáveis de ambiente do shell (como
$PATH
), portanto você terá que definir todos os caminhos que deseja incluir. É uma boa ideia manter os caminhos originais que você mencionou (/usr/bin:/bin:/usr/sbin:/sbin
).Você precisará reiniciar após alterar (ou criar) o arquivo para que as alterações entrem em vigor.
fonte
-bash: setenv: command not found
setenv
é umlaunchctl
comando, então você o usa comolaunchctl setenv
.Funciona se você chamar o aplicativo GUI do Terminal:
Não é realmente agradável ou confortável, mas faz o trabalho, se necessário.
fonte
Eu criei outra solução, inspirada na patrix aqui , que espero que seja um pouco menos dolorosa. Abra
Automator
, selecione um aplicativo como destino e escolhaExecute Shell script
(ou como ele é chamado, em alemão, é "Shell-Skript ausführen", como pode ser visto acima)) como ação. No script, basta digitarEm seguida, salve a coisa toda onde quiser e, se precisar executar o YourApplicationHere , abra o "aplicativo de automação" criado.
Eu testei isso
Terminal
como YourApplicationHere e vi comlaunchctl export
esse FOO que estava realmente definido para barrar . Espero que funcione para os outros também.Por fim, se você usar esta solução para suas variáveis de ambiente, em vez de digitar as
launchctl
coisas no shell script, basta chamar/Users/Shared/conflaunchd.sh
(que você deve criar primeiro, junto com o arquivo que descreve as variáveis).fonte
Supostamente,
launchctl
fornecePATH
para GUI Apps. Para definir o caminho para o caminho do shell, adicione o seguinte ao seu arquivo shell rc após definir o caminho:fonte