Como defino variáveis ​​de ambiente no OS X?

70

Eu sempre tenho dificuldades em definir as variáveis ​​de ambiente no OS X como JAVA_HOME, M2_HOMEou PATH. Como configurá-los no OS X Mavericks?

Eu fiz algumas pesquisas, mas as respostas que encontrei ainda não me ajudaram:

  1. export JAVA_HOME=/... (Mas parece que as alterações são temporárias, apenas para uma sessão do terminal.)
  2. setenv JAVA_HOME=/... (Mas comando não encontrado.)
  3. Abra .profilee escreva as variáveis ​​dentro para tornar as alterações permanentes - ( .profilenão existe).
  4. Abra .bash_profilee escreva as variáveis ​​dentro para tornar as alterações permanentes - ( .bash_profilenão existe).
  5. vi ~/.bash_profile(Um grande desafio para alguém que não sabe vi.)
  6. Criando seu próprio enrivonment.plistarquivo.

Alguém pode me guiar pelas etapas para que isso funcione no OS X Mavericks, supondo que não haja conhecimento do Unix?

akcasoy
fonte
11
O Unix (e qualquer outro sistema operacional) pode ser difícil para novos usuários, para que eu possa entender sua frustração. No entanto, a pergunta escrita é bastante ampla e não trará as respostas que você está procurando. Você pode reescrevê-lo para focar no problema que está realmente enfrentando (como "Como defino JAVA_HOME e PATH no Mavericks"), o que garantirá que você obtenha boas respostas nas quais possa desenvolver?
nohillside
A meu ver, Stuffe já editou minha pergunta. Thanx. Minha pergunta é como diz o título, como definir JAVA_HOME e PATH no Mavericks.
akcasoy
@patrix: Da próxima vez, explicarei meu problema ou o que quero perguntar e você escreverá MINHA PERGUNTA COM SUAS PALAVRAS. OK? Parece que vocês, moderadores, estão muito satisfeitos ao fazer isso.
akcasoy

Respostas:

45

Eu tenho um perfil no meu diretório pessoal; Ele contém muitas export …instruções para variáveis ​​de ambiente.

Você pode criar esse arquivo abrindo um Terminal e emitindo o comando touch .profile Fechar Terminal.

Em seguida, você deve abrir esse arquivo em um editor de texto sem formatação (TextWrangler, por exemplo). Você também pode usar nano .profileem uma janela do Terminal (o diretório atual deve ser sua casa), o que é muito mais fácil do que vi. Inserir linhas como export JAVA_HOME=…. Salve, saia nanose você usou isso e saia de um terminal em execução.

Abra o Terminal e emita o comando envpara ver todas as variáveis ​​de ambiente. Verifique se os que você definiu têm o valor que você atribuiu a eles. Você deve estar pronto para ir agora. Mas não esqueça que as variáveis ​​de ambiente definidas em .profilenão são passadas para aplicativos da GUI.

Bhas
fonte
Muito obrigado. Era isso que eu realmente procurava. Agora eu configurei todas as minhas variáveis. O que você quer dizer com aplicativos GUI? Eu só precisava de algumas variáveis ​​para java e maven para trabalhar com o eclipse, ferramentas de primavera etc. O Eclipse é um aplicativo com GUI (Graphical User Interface). Você quer dizer isso com GUI?
akcasoy
Está bem. Eu li alguns e acho que você realmente quis dizer GUI com GUI. Existe uma maneira de disponibilizar essas variáveis ​​em todos os lugares? Qual é a maneira mais comum ou onde é o local mais comum para defini-las?
akcasoy
1. Sim, é isso que eu quis dizer com aplicativo GUI. 2. A definição de variáveis ​​de ambiente para aplicativos da GUI no OS X 10.8 parece ser bastante difícil. Alguns aplicativos permitem definir variáveis ​​de ambiente, que devem ser passadas para outros aplicativos, em suas preferências, por exemplo. Você também pode usar o open -a Appnamemétodo em uma sessão do Terminal.
Bhas 26/10
4
Não sei por que, mas para mim (OS X Yosemite 10.10.1) a .profileajuda não ajudou. Eu tive que colocar as exportdeclarações no .bash_profilepara fazê-lo funcionar. Espero que isso ajude alguém se ele corre para os mesmos problemas ...
chuky
23

Em Yosemite, você deve colocar export VARIABLE='something'dentro .bash_profile.

Eu tentei escrever por export VARIABLE='something'dentro .profilesem sucesso.

Rafael Eyng
fonte
De fato. .profile funciona apenas quando você o executa manualmente via source .profile Mas, após uma reinicialização, o .profile não é carregado. O .bash_profile é.
KC
não está realmente correto.
Koray Tugay
2
@KorayTugay Você poderia apontar o que está errado, e talvez uma maneira de corrigi-lo?
Rafael Eyng
7

Para aqueles que não gostam de ter problemas com arquivos e editores de texto, existe também uma ferramenta GUI no GitHub .

mkraemerx
fonte
Ótimo ! Passei o dia inteiro tentando descobrir para resolver o problema variável de ambiente e eu estava longe .O aplicativo que você postou resolvido todos os meus ambiente aborrecimentos
Shajo
5

Para adicionar um diretório a um caminho, existe uma opção melhor no OS X: Todas as entradas no arquivo / etc / caminhos são adicionadas ao caminho antes de qualquer shell ser iniciado.

Edite este arquivo com:

sudo pico /etc/paths

Para mais informações, consulte: https://gist.github.com/Overbryd/1669348

Bjinse
fonte
Obrigado! para mim esta é a maneira mais elegante para incluir um novo caminho
Asimov
4

O OSX teve apenas uma alteração nas variáveis ​​de ambiente e foi no Lion onde ~ / .MacOSX / environment.plist foi removido. Embora também tenha havido uma alteração no shell padrão nas versões 10.2 ou 10.3 do tsch para o bash.

Você precisa definir para o que deseja definir a variável de ambiente e em qual ambiente você possui.

Você também precisa entender os shells e o Unix que, pelos seus comentários, ainda não foram totalmente executados. Existem vários tutoriais nbash por aí.

Quanto aos seus pontos

  1. Você entendeu corretamente assumindo que você está em um shell do tipo sh (por exemplo, bash ou zsh)
  2. Isso é para shells C, por exemplo, tcsh, portanto não funcionará nos padrões recentes.
  3. Você precisa criar .profile, então funciona
  4. É .bash_profile ou melhor .bashrc e você precisa criar o arquivo primeiro
  5. Totalmente correto :) Use TextEdit ou nano (ou emacs)
  6. Corrija o OSX 10.7 e o que fazer para fazer isso nos programas chamados a partir da área de trabalho, por exemplo, do Dock ou do Finder (ou aberto)

Portanto, 3 ou 4 funcionam se você estiver chamando o programa da linha de comando (ou de um programa iniciado na linha de comando, mas não por aberto)

Quanto aos programas da GUI, veja esta pergunta

Quanto à internet está cheia de lixo - você precisa ter antecedentes suficientes para entender um artigo, porque, como você descobriu, muitos assumem coisas ou estão incorretos. Os sites StackExhnage devem ser melhores, pois você pode ver se uma resposta foi aceita com base no número de votos.

user151019
fonte
Eu ainda não tenho nenhum resultado. A questão vinculada não me leva à solução. Eu tenho um Mac há 4 anos, mas ainda não tenho (não precisei) experiência sobre o UNIX. Eu acho que, quando a resposta de "Por que é tão difícil?" é "plist foi removido, alteração em 10.2 ou 10.3, tipo sh, shell até 10.7 etc." a resposta contradiz consigo mesma.
akcasoy
Poderia ser feito com muita facilidade, como no Windows. Enfim .. o que eu realmente estava esperando era sth. assim: 1- abrir o diretório inicial 2- abrir o terminal 3- escrever "xxx" salvar com 4 cliques etc. não é necessário ter um plano de fundo suficiente para definir apenas uma variável simples; pelo menos, pode encontrar uma solução adequada a partir dessas respostas padrão no a Internet.
akcasoy
Se você precisar de variáveis ​​de ambiente, precisará entender o que elas estão fazendo e isso exige um histórico. Além disso, como você não indicou para o que estava usando as variáveis, tenho que fornecer todas as diferenças possíveis. Nota para a configuração Java JAVA_HOME não é necessariamente a melhor maneira (consulte Perguntas sobre Java)
user151019 27/10/2013
Minha pergunta foi sobre como definir as variáveis. Nem sobre o que eles estão fazendo, nem sobre qualquer outra coisa que exija mais informações. Obviamente, você pode configurá-los mesmo sem fundo. Obrigado pela sua resposta. Mas, como já escrevi, bastava uma simples proposta de solução, que já tenho graças ao Bhas.
akcasoy
Você realmente não deve definir variáveis sem fundo você tem que saber o que eles fazem
user151019
4

Caso você esteja usando zshcomo eu, precisará modificar ~/.zshrc.

shellbye
fonte
11
Ou em.zprofile
horário de