Ok, aqui está o que eu fiz para resolver o problema. É baseado uma resposta a esta pergunta do StackOverflow , que encontrei depois de misturar um pouco meus termos de pesquisa no Google. Eu adicionei a seguinte linha a .bashrc
:
source /etc/profile
Tudo funciona como deveria agora.
EDIT: Por que o problema ocorre
Eu descobri por que você tem que forçar explicitamente o shell BASH a ler / etc / profile em vez de lê-lo na invocação. Aqui está a seção relevante do manual BASH ( man bash
):
When an interactive shell that is not a login shell is started, bash reads and executes commands from ˜/.bashrc, if that file exists. This may be inhibited by using the −−norc option. The −−rcfile file option will force bash to read and execute commands from file instead of ˜/.bashrc.
Pode-se inferir da maneira como isso é escrito (e o que diz sobre como invocar shells de login antes disso) é que shell.el
não invoca um shell de login. Eu procurei por evidência disso em shell.el
e parece ser verdade, BASH é invocado com o sinalizador -i (interativo), mas não o sinalizador --login . Os shells não-login lêem .bashrc , então é por isso que você pode contornar o problema colocando source /etc/profile
em .bashrc .