A resposta é:
Eu deveria colocá-los em .pam_enviornment
Veja aqui link
Eu imagino que esta é uma das perguntas mais comuns, eu não sei porque ninguém me deu a resposta correta quando fiz esta pergunta.
Estou executando o Ubuntu 12.04
eu adicionei
export LD_LIBRARY_PATH=/home/dspies/workspace/hdf5-1.8.11-linux-shared/lib
para .profile
mas quando eu logar e abrir o terminal e colocar echo $LD_LIBRARY_PATH
não há nada.
Quando eu alterno para ctrl-alt-F1 e efetuo login, echo $LD_LIBRARY_PATH
dá
/home/dspies/workspace/hdf5-1.8.11-linux-shared/lib
mas quando executo screen
, echo $LD_LIBRARY_PATH
da tela fica vazia novamente
Em que circunstâncias posso esperar que variáveis de ambiente de .profile sejam configuradas? (curiosamente, parece que qualquer modificação no PATH feita no .profile sempre aparece)
EDIT: Desculpe, acho que não esclareci o que eu realmente queria saber qual é: Como eu posso definir uma variável de ambiente que eu quero que seja definida em qualquer lugar (ou seja, na tela, no terminal, quando eu log-in, e quando eu ssh em)?
A resposta é:
Eu deveria colocá-los em .pam_enviornment
Veja aqui link
Eu imagino que esta é uma das perguntas mais comuns, eu não sei porque ninguém me deu a resposta correta quando fiz esta pergunta.
No manual do Bash:
% bl0ck_qu0te% Isso significa que, se você tiver um .bash_profile
ou .bash_login
em sua pasta pessoal, o bash não lerá o conteúdo de seu .profile
. Além disso, quando não estiver em execução em um shell de login interativo, .profile
também não será lido.
echo $0
retornará o nome do script que está sendo executado, quando este comando for executado dentro de um script de shell. Em um terminal, ele retornará o tipo de shell sendo usado.
Você está usando bash
shell. Você precisa adicionar esta linha
export LD_LIBRARY_PATH=/home/dspies/workspace/hdf5-1.8.11-linux-shared/lib
para ~/.bash_profile
file.
EDITAR:
Você pode encontrar os nomes de scipt do perfil de login para diferentes shells, aqui
EDIT2:
Até eu recebi duas respostas diferentes quando executei echo $0
em duas máquinas diferentes. Em uma máquina, obtive bash
e, por outro, obtive -bash
. Eu fiz essa pergunta aqui . Isto é o que eu tenho como resposta.
Processes with a - at the beginning of arg 0 have been run via login, or by exec -l in bash.
Depois de ler essa resposta, eu fiz help exec
e lê, If the first argument is '-l', then place a dash in the zeroth arg passed to FILE, as login does
.