perché la mia variabile di ambiente non è visibile dalla riga di comando?

2

Sto cercando di eseguire il server smtp di james su Lion. Quando faccio questo ...

sudo JAVA_HOME=/Library/Java/Home ./james-2.3.2/bin/run.sh

... funziona perfettamente.

Tuttavia, vorrei rendere a JAVA_HOME una variabile d'ambiente che sia visibile anche ad altre applicazioni.

Ho modificato ~ / .bash_profile per apparire come questo ...

export JAVA_HOME=/Library/Java/home

... e la variabile sembra essere visibile dalla riga di comando in questo modo ...

$ echo $JAVA_HOME
/Library/Java/home

Ma quando eseguo nuovamente james in questo modo, ricevo un avviso su JAVA_HOME ...

$ sudo ./james-2.3.2/bin/run.sh
ERROR: JAVA_HOME not found in your environment.

Please, set the JAVA_HOME variable in your environment to match the
location of the Java Virtual Machine you want to use.

Qualche idea su cosa sto facendo male? Perché il comando per eseguire james non può vedere la variabile di ambiente JAVA_HOME?

Qualsiasi informazione è molto apprezzata, grazie!

Rob

    
posta Robert Hume 29.12.2011 - 18:00
fonte

1 risposta

3

Il problema è che non si sta eseguendo il proprio ambiente in modo che eventuali modifiche a ~ / .bash_profile non abbiano alcun effetto sul comando. Sarà visibile ad altri processi

sudo viene eseguito come un altro utente - in questo caso root in quanto non hai fornito un parametro -u username. Quindi è necessario modificare l'ambiente root per rendere visibile JAVA_HOME al comando run.sh

    
risposta data 29.12.2011 - 18:53
fonte

Leggi altre domande sui tag