Pergunta sobre variável ambiental

3

Tenho o Oracle jdk7 instalado no meu centos6. Percebi que o / etc / profile tem as linhas abaixo:

#below lines are added for Java
export JAVA_HOME="/usr/java/latest"
## export JAVA_HOME JDK ##
export JAVA_HOME="/usr/java/jdk1.7.0_75"

Para testar minhas suposições em variáveis env e PATHs, comentei todas as linhas acima (as linhas de exportação). Tentei carregar o novo /etc/profile , obtendo . /etc/profile e emiti o echo $JAVA_HOME ; ainda retornou o caminho acima.

Então, reiniciei a máquina porque a fonte não funcionou. Após a reinicialização, o echo $JAVA_HOME não retorna nada, o que é esperado. Não há nada em ~/.bash_profile para Java.

Mas se eu emitir o comando: java -version no shell, ele ainda retornará

[root@localhost ~]# java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

Onde o Java está definido no PATH? o caminho no ~/.bash_profile é como abaixo, ele não tem nenhum para Java.

# Ambiente específico do usuário e programas de inicialização

PATH=$PATH:$HOME/bin
export PATH
~
~
~

set - no shell retorna a linha abaixo para a variável PATH:

PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    
por OK999 29.03.2015 / 22:59

1 resposta

2

O PATH padrão está definido em /etc/profile . Os usuários podem modificar seus PATH editando ~/.profile , ~/.bash_profile ou ~/.bashrc (se estiverem executando bash ), mas, se não tiverem, ainda terão PATH , conforme definido em /etc/profile . É por isso que a linha foi

PATH=$PATH:$HOME/bin

e não apenas

PATH=$HOME/bin

Dessa forma, o valor original de PATH é mantido e o novo diretório é simplesmente anexado. No meu sistema, o PATH definido em /etc/profile é

PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"

Você provavelmente tem uma linha muito parecida na sua e que é de onde /usr/bin vem.

    
por 30.03.2015 / 01:57