Gostaria de acrescentar à variável de ambiente PATH global no OS X para que todos os shells de usuário e aplicativos de GUI obtenham o mesmo ambiente PATH.
Eu sei que posso acrescentar o caminho nos scripts de inicialização do shell, mas essas configurações não são herdadas pelos aplicativos da GUI.
A única maneira que encontrei até agora é redefinir a variável de ambiente PATH no /etc/launchd.conf :
setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/my/path
Eu não conseguia descobrir uma maneira de realmente adicionar ao PATH launchd.conf
.
Estou um pouco preocupado com esse método, mas até agora essa é a única coisa que funciona. Existe uma maneira melhor?
Respostas:
As informações da GUI do palmer estão corretas, mas há uma maneira mais sustentável de modificar o caminho visto pelo shell. Como o mediaslave disse , você pode editar
/etc/paths
, mas ainda melhor, você pode soltar um arquivo de texto/etc/paths.d/
com um caminho e todas as conchas irão construir o caminho corretamente.Por exemplo, no meu sistema:
fonte
X11
(menos doloroso do que sair completamente). Eu não tenteiTerminal
.$PATH
./etc/launchd.conf
O
launchd.conf
arquivo é ** a única solução completa que funcionará para aplicativos de linha de comando e GUI no OS X v10.8 (Mountain Lion) e v10.9 (Mavericks), que funcionará com aplicativos de console e GUI para todos os usuários .Adicionar, acrescentar
No exemplo acima, adicionei
/usr/local/bin
aos valores de ambiente padrão para PATH.Lembre-se de que este arquivo não é um script e você não tem a opção de usar substituições. Além disso, para aplicá-las, é necessário reiniciar.
Lembre-se, todos os outros são apenas soluções parciais:
environment.plist
não funciona para aplicativos lançados via Spotlight./etc/paths
- apenas para console/etc/csh.cshrc
ou/etc/bashrc
- apenas para algumas conchasEsta resposta é baseada sobre a mesma questão a partir Definir variáveis de ambiente no Mac OS X .
fonte
/etc/launchd.conf
.Você precisará configurá-lo shell a shell; Os shell Bash e csh-like não compartilham os mesmos arquivos de configuração e sintaxe para ajustar o PATH.
Tentar fazer isso
launchctl
não funcionará, porque as variáveis de ambiente são definidas no login; eles não existem em todo o sistema no Unix fora de uma sessão de shell.Então você vai querer adicionar
para
/etc/csh.cshrc
epara
/etc/bashrc
.Se você deseja variáveis de ambiente em aplicativos GUI, isso é mais complicado. Você precisa criar um
.MacOSX/environment.plist
arquivo no diretório inicial de cada usuário. O.MacOSX
diretório provavelmente não existirá por padrão, então você terá que criá-lo.O formato do arquivo é assim:
Mais informações no
environment.plist
site da Apple .fonte
~/.MacOSX/environment.plist
abordagem não é mais suportada e não há substituto no nível do usuário. Você pode usar todo o sistema/etc/launchd.conf
(e há uma solução por - *. App).Você pode editar seu caminho global adicionando linhas a
/etc/paths
, um caminho por linha.sudo nano /etc/paths
deveria levá-lo até lá.fonte
Você já viu a página de manual do
path_helper
utilitário de linha de comando no OS X? Respondi a uma pergunta um pouco relacionada ao SO que acho que você pode achar útil.fonte
Não tenho certeza se alguém abordou a maneira mais simples e elegante . Pelo menos no Mac OS X 10.6 (Snow Leopard).
Mexer com o
[/etc/|~/.]
de[profile|bashrc]
arquivos podem funcionar, mas é um pouco de um hack. O/etc/paths.d/
diretório é o caminho a seguir:Crie um novo arquivo chamado
*name*
(apenas não o nome que já existe)/etc/paths.d/
com um caminho por linha:Então adicione
para
profile
oubashrc
, e você deve estar pronto para ir.fonte
*name*
? Ou você quer dizer apenasname
?Não tenho certeza se o launchd aceita isso, mas tente:
fonte
Não sei por que você usaria
/etc/launchd.conf
, ao contrário/etc/profile
- mas não sou especialista em Mac OS X - acredito em você que tenho certeza de que funciona, maslaunchd
é a implementação / substituição do Mac OS X parainit
- Mac OS X me confunde.De qualquer forma,
setenv PATH "$PATH:/more/paths:/and/more/paths"
funcionará (tcsh), e o equivalente do shell de bourn éexport PATH="$PATH:/more/paths:/and/more/paths"
- também não tenho idéia de comolaunchd
está relacionado a um shell em particular.Acho que fiz mais perguntas do que respondi =)
fonte