Como definir o $ PATH como o usado por aplicações em OS X
-
19-08-2019 - |
Pergunta
Eu estou usando formiga para construir meu projeto, e usar o 'svnversion' executável para inserir um ID de versão em minhas fontes para facilitar o rastreamento de versões.
A execução deste arquivo formiga das obras de linha de comando, eu configurei meu $ PATH em .profile para incluir o caminho para svnversion e trabalha muito bem.
Agora eu tento e executar este mesmo arquivo formiga de dentro do Eclipse e que não funciona - o caminho no eclipse é definido de outra maneira do que o caminho do shell, eu suspeito que isso tem que ser definido em um algum lugar plist, mas Eu não sei onde.
Solução
Correto - é no arquivo plist
~/.MacOSX/environment.plist
Este arquivo realmente contém pares chave-valor para as variáveis ??de ambiente que pretende definir, para toda a sessão de login. Ao contrário .profile / .cshrc etc, ele está disponível para programas GUI. Infelizmente, você não pode acessar outras variáveis ??de ambiente (por exemplo, você não pode usar $ HOME) ou usar quaisquer outras construções programáticas aqui.
Atualização :. Nota que este não é mais suportada sob OS X 10.8 Mountain Lion, infelizmente
Outras dicas
Uma busca rápida na developer.apple.com apareceu variáveis ??de ambiente Definição de processos de usuário .
No Mac OS X El Capitan (10.11.5), isso funciona para mim para por usuário entradas de caminho (e outras variáveis ??de ambiente, para que o assunto).
- criar um
$HOME/.profile
arquivo - definir todas as variáveis ??relacionadas PATH no arquivo
-
(se estiver usando bash), tem sua fonte
.bash_profile
esse arquivo, e.bashrc
. Este deve ser todo o conteúdo do seu.bash_profile
:# $HOME.bash_profile: source $HOME/.profile source $HOME/.bashrc
Perto quanto eu posso dizer, Mac OS não .bash_profile
fonte no login para PATH
, presumivelmente porque que muitas vezes é muito lento para run (inicializar conclusão do bash etc). Parece ler $HOME/.profile
.
Você ainda precisa de um $HOME/.bash_profile
para bater gatilho para ler $HOME/.bashrc
, que de outra forma não faria por terminais interativos, não-logon como os criados por Terminal.app
.