Parece que é apenas um bug que minha variável de ambiente não está sendo definida.
Eu tenho que definir uma variável de ambiente chamada GDK_NATIVE_WINDOWS
para corrigir o problema com os botões do Eclipse no Ubuntu . Para definir a variável de ambiente, adicionei a seguinte linha a ~/.pam_environment
.
GDK_NATIVE_WINDOWS DEFAULT=true
Surpreendentemente, a variável de ambiente não é definida quando eu echo $GDK_NATIVE_WINDOWS
em um terminal. No entanto, todas as outras variáveis de ambiente listadas em ~/.pam_environment
estão definidas corretamente. Além disso, quando mudo para um tty, por ex. Alt+Ctrl+F1
, a variável de ambiente é definida corretamente. Alguém pode dizer o que há de errado com a configuração dessa variável de ambiente em ~/.pam_environment
?
Atenha-se à sintaxe simples "key = value" no arquivo ~ / .pam_environment. Não PADRÃO, OVERRIDE, $ {HOME}, nada. Apenas chave = valor. A página man que você ligou é para pam_env.conf, apenas. Veja "man 8 pam_env" que não promete mais nada "Este módulo também pode analisar um arquivo com pares simples KEY = VAL em linhas separadas.".
A propósito, colocar algo como PATH = $ {PATH}: more / paths em ./pam_environment é uma ótima maneira de quebrar quase qualquer tentativa de login, já que o PATH é definido como $ {PATH}: more / paths < em> literalmente (não há muito a ser encontrado lá). Para resgatar, "/ bin / mv .pam_environment out_of_the_way" e faça o login novamente.
Como você identificou, suas variáveis de ambiente devem ser definidas em ~/.pam_environment
conforme recomendado no link . Mais fácil falar do que fazer;)
É possível que você tenha passado pela mesma lacuna de configuração que existia para mim. Veja a solução alternativa para a página inicial criptografada abaixo.
~/.pam_environment
: PATH DEFAULT=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${HOME}/bin
IDEA_JDK DEFAULT=${HOME}/Applications/jdk
Por que o caminho estático feio? ${PATH}
não funcionaria para mim. Eu tentei meu login várias vezes tentando contornar isso, então eu estou furando com a cópia estática feia dos padrões:)
Nas versões do Ubuntu até e incluindo o Precise 12.04 Beta 2, se você estiver usando um diretório pessoal criptografado, precisará modificar /etc/pam.d/common-session
para que ele carregue ~/.pam_environment
. Esta solução aparentemente funciona para versões anteriores, mas eu não testei isso.
This seems to be an issue with encrypted home directories. I added
session required pam_env.so
at the end of /etc/pam.d/common-session and now ~/.pam_environment gets read. On another system without encrypted home directories (also 10.04) the work around is not needed. Perhaps in my case the system tries to read ~/.pam_environment before it is decrypted.
Você tem um espaço entre GDK_NATIVE_WINDOWS e DEFAULT = true. Isso é diferente do exemplo que você vinculou.
Tente:
GDK_NATIVE_WINDOWS = true
Acho que, quando você inicia um terminal, não está iniciando uma sessão de login. é uma sessão de terminal e funciona com regras diferentes. Eu nunca tive a diferença e a necessidade de diferenciar, mas em qualquer caso eu sugiro que você use ~ / .bash_profile e / ou ~ / .bashrc para obter o mesmo resultado, a menos que você tenha sugerido usar o pam por razões específicas.