Meus arquivos de configuração de terminal do Linux (.bash_profile, .profile, .bashrc) expandem $ PATH com a inclusão de alguns diretórios personalizados. Isso só acontece uma vez (e eu também incluí alguns guardas baseados em VV para garantir que isso só aconteça uma vez). Meu .bash_profile
também origina o script .rvm ( ~/.rvm/scripts/rvm
) que preenche seus próprios diretórios personalizados. Esses diretórios do RVM devem ser os primeiros.
Tudo está OK, desde que eu esteja em uma sessão de bash limpa.
Se eu executar tmux
, no entanto, as entradas de diretório dos meus arquivos de configuração serão adicionadas ao PATH duplamente (independentemente das proteções de variável ENV). Parece que o tmux tem dois ambientes para variáveis ENV que são então mesclados.
Isso é um problema, já que as entradas prefixadas pelo script .rvm só são prefixadas uma vez, e no cenário do tmux elas não terminam primeiro.
Como posso evitar que isso aconteça?
Editar - informações adicionais:
Todas as minhas adições do PATH são prefixadas em .profile
, que incluo de .bash_profile
( . ~/.profile
). Todos os meus terminais GUI são executados "como um shell de login".
Em cada arquivo de configuração, eu uso guardas do seguinte formulário para evitar dupla inclusão:
if [ "$PROFILE_SOURCED" != "true" ]; then
export PROFILE_SOURCED=true
...
fi
Ao adicionar uma entrada ao PATH, quero dizer export PATH=entry:$PATH
.