Come posso impostare le variabili di ambiente su OS X?


72

Ho sempre difficoltà a impostare le variabili di ambiente in OS X come JAVA_HOME, M2_HOMEo PATH. Come impostarli su OS X Mavericks?

Ho fatto qualche ricerca ma le risposte che ho trovato non mi hanno ancora aiutato:

  1. export JAVA_HOME=/... (Ma sembra che le modifiche siano temporanee, solo per una sessione terminale.)
  2. setenv JAVA_HOME=/... (Ma comando non trovato.)
  3. Apri .profilee scrivi le variabili all'interno per rendere permanenti le modifiche ( .profilenon esiste).
  4. Apri .bash_profilee scrivi le variabili all'interno per rendere permanenti le modifiche ( .bash_profilenon esiste).
  5. vi ~/.bash_profile(Piuttosto una sfida per qualcuno che non lo sa vi.)
  6. Creare il proprio enrivonment.plistfile.

Qualcuno può accompagnarmi attraverso i passaggi per farlo funzionare su OS X Mavericks, supponendo che nessun know-how Unix?


1
Unix (e qualsiasi altro sistema operativo) può essere difficile per i nuovi utenti in modo che io possa capire la tua frustrazione. Tuttavia, la domanda scritta è piuttosto ampia e non porterà le risposte che stai cercando. Puoi per favore riscriverlo per concentrarti sul problema che stai effettivamente riscontrando (come "Come posso impostare JAVA_HOME e PATH su Mavericks") che ti assicurerà di ottenere buone risposte su cui puoi costruire?
Nohillside

Come vedo, Stuffe ha già modificato la mia domanda. Grazie. La mia domanda è come dice il titolo, come impostare JAVA_HOME e PATH su Mavericks.
Akcasoy,

@patrix: La prossima volta ti spiegherò il mio problema o quello che voglio chiedere e scriverai la MIA DOMANDA CON LE TUE PAROLE. ok? Sembra che voi moderatori siate molto soddisfatti facendo questo.
Akcasoy

Risposte:


45

Ho un .profile nella mia directory home; contiene molte export …istruzioni per le variabili di ambiente.

È possibile creare un tale file aprendo un Terminale ed emettendo il comando touch .profile Chiudi Terminale.

Quindi è necessario aprire quel file in un editor di testo semplice (ad esempio TextWrangler). Puoi anche usarlo nano .profilein una finestra Terminale (la directory corrente dovrebbe essere la tua casa), che è molto più facile di vi. Inserisci linee come export JAVA_HOME=…. Salva, esci nanose lo hai usato e chiudi un Terminale in esecuzione.

Apri Terminale ed emetti il ​​comando envper visualizzare tutte le variabili di ambiente. Verifica che quelli che hai definito abbiano il valore assegnato a loro. Dovresti essere bravo ad andare ora. Ma non dimenticare che le variabili di ambiente definite in .profilenon vengono passate alle applicazioni della GUI.


Grazie mille. Questo era quello che stavo davvero cercando. Ora ho impostato tutte le mie variabili. Cosa intendi per applicazioni GUI? Avevo solo bisogno di alcune variabili per Java e Maven per lavorare con eclissi, strumenti a molla, ecc. Eclipse è un'applicazione con GUI (Graphical User Interface). Intendi questo per GUI?
Akcasoy,

Ok. Ne ho letti alcuni e penso che tu abbia davvero una vera GUI con la GUI .. C'è un modo per rendere queste variabili disponibili ovunque? Qual è il modo più comune o dove si trova la posizione più comune per definirli allora?
Akcasoy,

1. Sì, questo è ciò che intendevo per app GUI. 2. l'impostazione delle variabili di ambiente per l'app GUI in OS X 10.8 sembra essere piuttosto difficile. Alcune app consentono di definire variabili di ambiente, che devono essere passate ad altre applicazioni, ad esempio nelle loro preferenze. È inoltre possibile utilizzare il open -a Appnamemetodo in una sessione Terminale.
Bhas,

4
Non so perché, ma per me (OS X Yosemite 10.10.1) .profilenon ha aiutato. Ho dovuto inserire le exportdichiarazioni in .bash_profileper farlo funzionare. Spero che questo aiuti qualcun altro se incontra gli stessi problemi ...
Chuky,

24

In Yosemite, dovresti metterlo export VARIABLE='something'dentro .bash_profile.

Ho provato a scrivere l' export VARIABLE='something'interno .profilesenza successo.


Infatti. .profile funziona solo quando lo esegui manualmente tramite source .profile Ma dopo un riavvio, il .profile non viene caricato. Il .bash_profile è.
KC,

non proprio corretto.
Koray Tugay,

2
@KorayTugay Potresti indicare cosa c'è che non va e forse un modo per risolverlo?
Rafael Eyng,


7

Per coloro a cui non piace avere problemi con file di testo ed editor, c'è anche uno strumento GUI su GitHub .


Grande ! Ho trascorso un'intera giornata a risolvere il problema della variabile d'ambiente e non ero da nessuna parte. L'app che hai pubblicato ha risolto tutti i problemi dell'ambiente
Shajo,

5

Per aggiungere una directory a un percorso, c'è un'opzione migliore in OS X: tutte le voci nel file / etc / percorsi vengono aggiunte al percorso, prima che venga avviata qualsiasi shell.

Modifica questo file con:

sudo pico /etc/paths

Per ulteriori informazioni, consultare: https://gist.github.com/Overbryd/1669348


Grazie! per me questo è il modo più elegante di includere un nuovo percorso
Asimov,

4

OSX ha avuto un solo cambiamento rispetto alle variabili d'ambiente e quello era in Lion dove ~ / .MacOSX / environment.plist è stato rimosso. Sebbene ci sia stata anche una modifica nella shell predefinita in 10.2 o 10.3 da tsch a bash.

Devi definire per cosa vuoi impostare la variabile di ambiente e per quale ambiente hai.

È inoltre necessario comprendere shell e Unix che, in base ai propri commenti, non sono stati completamente eseguiti. Ci sono diversi tutorial nbash in giro.

Quanto ai tuoi punti

  1. Comprendi correttamente supponendo di essere in una shell di tipo sh (ad esempio bash o zsh)
  2. Questo è per le shell C, ad esempio tcsh, quindi non funziona con i valori predefiniti recenti.
  3. Devi creare .profile quindi funziona
  4. È .bash_profile o migliore .bashrc e devi prima creare il file
  5. Totalmente corretto :) Usa TextEdit o nano (o emacs)
  6. Correggi fino a OSX 10.7 e ti consigliamo di farlo per i programmi richiamati dall'Area di lavoro, ad esempio da Dock o Finder (o aperti)

Quindi 3 o 4 funzionano se si chiama il programma dalla riga di comando (o da un programma avviato nella riga di comando ma non aperto)

Per quanto riguarda i programmi dalla GUI, vedi questa domanda

Per quanto riguarda internet è pieno di immondizia, devi avere abbastanza background per capire un articolo perché, come hai scoperto, molti ritengono che le cose siano sbagliate o che non siano corrette. I siti StackExhnage dovrebbero essere migliori come puoi vedere se una risposta è stata concordata dal numero di voti.


Non ho ancora alcun risultato. La domanda collegata non mi porta alla soluzione. Ho un mac da 4 anni, ma ancora non ho (non ho dovuto) esperienza su UNIX. Penso, quando la risposta di "Perché è così difficile?" è "plist è stato rimosso, modifica in 10.2 o 10.3, shell di tipo sh, fino a 10.7 ecc." la risposta è in contraddizione con se stessa.
Akcasoy,

Potrebbe essere reso molto facilmente come in Windows. Comunque .. quello che mi aspettavo davvero era sth. in questo modo: 1- apri home dir 2- apri terminale 3- scrivi "xxx" 4-click salva ecc. non si deve avere abbastanza background per impostare solo una semplice variabile, almeno si potrebbe trovare una soluzione adeguata da quelle risposte sulla targhetta la rete.
Akcasoy,

Se hai bisogno di variabili d'ambiente devi capire cosa stanno facendo e ciò richiede background. Inoltre, dal momento che non hai indicato cosa stavi usando le variabili, devo dare tutte le possibili differenze. Nota per l'impostazione Java JAVA_HOME non è necessariamente il modo migliore (vedi domande Java)
user151019

La mia domanda era su IMPOSTAZIONE delle variabili. Né su ciò che stanno facendo, né su qualsiasi altra cosa che richiede maggiori informazioni. Puoi ovviamente impostarli anche senza sfondo. Grazie per la tua risposta però. Ma come ho già scritto, era sufficiente una semplice proposta di soluzione, che ho già grazie a Bhas.
Akcasoy,

Non dovresti davvero impostare variabili senza sfondo devi sapere cosa fanno
user151019

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.