.profile não é originado no Debian Wheezy LXDE

11

Eu adiciono $HOME/bina $PATHpartir de ~/.profile. No entanto, parece que não é fornecido durante o login. Eu uso um gerenciador de login - lxdmacho que não startx. Eu sei que isso importa a respeito de quais scripts são executados.

Para ilustrar, veja como o $HOME/biné adicionado depois da fonte explicitamente ~/.profile. Mas não deveria ter sido obtido durante o login gráfico?

sashoalm@aspire:~$ echo $PATH 
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sashoalm@aspire:~$ source ~/.profile 
sashoalm@aspire:~$ echo $PATH 
/home/sashoalm/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sashoalm@aspire:~$ 
sashoalm
fonte
Você já tentou adicioná-lo ao / etc / profile?
MariusMatutiae
3
Não quero que seja global para todos os usuários, apenas para um único usuário.
Sashoalm

Respostas:

13

Mas não deveria ter sido obtido durante o login gráfico?

Há um pequeno debate sobre o assunto em que alguns logins gráficos assumem uma postura incomum ...

Eu adiciono $ HOME / bin a $ PATH de ~ / .profile. No entanto, parece que não é fornecido durante o login. Eu uso um gerenciador de login - lxdm acho

Corrigir. A maioria dos DMs lê ~/.profilequando você faz login. No entanto, eles devem fazer isso explicitamente, pois ~/.profileé tradicionalmente obtido por shells de login e um DM (login na GUI) não é um shell!

Qual é a justificativa que eu vi das lightdmpessoas para não procurar ~/.profileexplicitamente - porque um mestre não é um shell.

Você pode ~/.profilese originar de ~/.xsession- veja aqui .

Cachinhos Dourados
fonte
2
O fornecimento ~/.profilede ~/.xsessionprovavelmente funcionou quando essa resposta foi escrita, mas parece não funcionar mais. Eu consegui trabalhar fornecendo-o ~/.xsessionrc.
178917 Filip Filip
2

Se bash é o shell de login, então ele vai tentar ~/.bash_profile, ~/.bash_logine ~/.profilenesta ordem. No entanto, ele irá parar no primeiro que encontrar.

Se você ~/.profilenão tiver uma fonte, significa que você tem um dos outros dois (possivelmente os dois) em seu HOMEdiretório. Você deve verificar qual e, em seguida, colocar a nova PATHdeclaração na primeira.

MariusMatutiae
fonte
3
Embora esse seja um possível motivo, esses arquivos não existiam no meu sistema (eu já havia verificado antes de perguntar).
Sashoalm
2

Concorde com @goldilocks principalmente. Só quero adicionar que o script para a fonte ~/.profileé ~/.xsessionrc, em vez de ~/.xsession.

Aqui está a lógica:

qxu@debian:/etc/X11/Xsession.d$ cat 40x11-common_xsessionrc
# This file is sourced by Xsession(5), not executed.

#Source user defined xsessionrc (locales and other environment variables)
if [ -r "$USERXSESSIONRC" ]; then
  . "$USERXSESSIONRC"
fi

qxu@debian:/etc/X11$ grep USERXSESSIONRC Xsession
USERXSESSIONRC=$HOME/.xsessionrc
Qiang Xu
fonte
1

Quando o Bash é chamado como um shell de logon interativo ou como um shell não interativo com a --loginopção, ele primeiro lê e executa comandos do arquivo /etc/profile, se esse arquivo existir. Depois de ler esse arquivo, ele procura ~/.bash_profile, ~/.bash_logine ~/.profile, nessa ordem, e lê e executa os comandos do primeiro que existe e é legível.

Portanto, quando ~/.bash_profileexiste, ~/.profilenunca será lido.

caos
fonte
4
Sim, mas não existe no meu caso.
Sashoalm