Como definir variáveis de ambiente para toda a sessão e PATH?

5

Eu já vi outras pessoas na Internet também tendo esse problema, mas as soluções não foram conclusivas, então eu queria chamar a atenção novamente.

De acordo com esta página no wiki do Ubuntu: link a maneira recomendada de definir variáveis de ambiente para toda a sessão é modificar o ~ / .pam_environment.

Aqui está o meu objetivo:

  1. Eu quero criar uma variável de ambiente ANDROID_HOME que tenha um caminho para um determinado local na minha pasta pessoal como um valor.
  2. Eu quero adicionar duas pastas ao PATH.

Aqui está o que eu fiz. O arquivo ~ / .pam_environment era inexistente, então criei-o e adicionei as seguintes linhas a ele:

ANDROID_HOME=${HOME}/Android/Sdk
PATH DEFAULT=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

Saiu e efetuou login novamente.

O resultado não é esperado. Eu abri o terminal e fiz o eco de $ ANDROID_HOME e foi o que consegui:

${HOME}/Android/Sdk

Parece que o ${HOME} não foi substituído pelo caminho da minha pasta pessoal. Por que isso acontece?

Observe cd -ing como $ ANDROID_HOME (o Android / Sdk realmente existe na minha pasta pessoal):

anvar@crazymachine:~$ cd $ANDROID_HOME
bash: cd: ${HOME}/Android/Sdk: No such file or directory

Também ecoar o $ PATH me deu isto:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:${HOME}/Android/Sdk/tools:${HOME}/Android/Sdk/platform-tools

Por que as variáveis não são substituídas por seus valores, como seria lógico supor, especialmente quando o exemplo no site mencionado deu a impressão de que variáveis podem ser usadas dentro dos valores?

Qual é o caminho certo para definir variáveis de ambiente para toda a sessão que também têm acesso aos programas GUI?

    
por alvarez 22.11.2015 / 17:16

3 respostas

3

O exemplo em o wiki , para definir variáveis de sessão via ~/.pam_environment , indica em uma nota :

A sintaxe usada para modificar o PATH, cuja sintaxe difere dos arquivos de script, é necessária para que a expansão da variável funcione.

Assim, sua primeira linha deve se parecer com:

ANDROID_HOME DEFAULT=${HOME}/Android/Sdk
    
por Gunnar Hjalmarsson 22.11.2015 / 21:49
0

Duas sugestões:

1º - a forma de suas declarações ambientais deve ser:

ANDROID_HOME=$HOME/Android/Sdk
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

segundo, coloque as novas declarações de ambiente em ~/.profile

    
por Charles Green 22.11.2015 / 17:24
-1

Eu acho que você pode precisar de um export HOME após configurar a variável path (em ~ / .bashrc que fazemos)

    
por Shree 22.11.2015 / 17:23