Qualquer outra maneira de definir uma variável de ambiente?

2

Sou bastante novo no Linux. O Debian Wheezy agora está rodando no meu Laptop (64 bits).

Instalei recentemente o banco de dados Oracle 11g R2 para fins de avaliação e defini variáveis de ambiente (como ORACLE_SID ) por meio de um script /etc/profile.d/oracle.sh . Isso funciona bem, mas para o usuário "oracle".

Eu mudo o usuário por su - oracle .
O valor de ORACLE_SI D é diferente do valor especificado no arquivo /etc/profile.d/oracle.sh . Como o usuário oracle não possui nenhum arquivo (como .bash_profile , .profile etc.) em seu diretório home, de onde esse valor pode vir?

Qual é a seqüência de sobrecarga das variáveis de ambiente?

    
por user1185081 18.05.2013 / 22:54

1 resposta

4

O que sempre definiu a variável de ambiente última vitória. Então, isso realmente não importa, eu apenas colocaria a variável no arquivo $HOME/.bashrc do usuário oracle na parte inferior.

O arquivo $HOME/.bashrc é o arquivo-chave que cria arquivos como /etc/bashrc e os arquivos em /etc/profile.d/*.sh , por exemplo. Por isso, basta definir ORACLE_SID=whatever em $HOME/.bashrc .

Dica de depuração

Se você quiser ver o que está acontecendo, você pode depurar seu login assim:

su - oracle -c "env SHELLOPTS=xtrace bash"

Com o comando acima você pode acompanhar como os arquivos diferentes são originados pelo bash:

...
...
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/less.sh ']'
++ '[' '[\u@\h \W]\$ ' ']'
++ . /etc/profile.d/less.sh
+++ '[' -x /usr/bin/lesspipe.sh ']'
+++ export 'LESSOPEN=||/usr/bin/lesspipe.sh %s'
+++ LESSOPEN='||/usr/bin/lesspipe.sh %s'
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/PackageKit.sh ']'
++ '[' '[\u@\h \W]\$ ' ']'
++ . /etc/profile.d/PackageKit.sh
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/qt.sh ']'
++ '[' '[\u@\h \W]\$ ' ']'
++ . /etc/profile.d/qt.sh
+++ '[' -z /usr/lib64/qt-3.3 ']'
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/udisks-bash-completion.sh ']'
++ '[' '[\u@\h \W]\$ ' ']'
++ . /etc/profile.d/udisks-bash-completion.sh
+++ '[' -z '4.1.7(1)-release' ']'
+++ complete -o filenames -F __udisks udisks
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/vim.sh ']'
++ '[' '[\u@\h \W]\$ ' ']'
++ . /etc/profile.d/vim.sh
+++ '[' -n '4.1.7(1)-release' -o -n '' -o -n '' ']'
+++ '[' -x //usr/bin/id ']'
++++ //usr/bin/id -u
+++ '[' 0 -le 200 ']'
+++ return
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/which2.sh ']'
...
...
    
por 18.05.2013 / 23:59