using .zshrc
to modify my environment variables
Essa é a causa raiz do seu problema. .zshrc
é um arquivo de inicialização para sessões de shell interativas. Use-o para definir configurações de shell, não para definir variáveis de ambiente. Variáveis de ambiente geralmente são definidas em um arquivo de sessão, como .profile
. Veja Alternativa para .bashrc (o que vale para .bashrc
também vale para .zshrc
).
Se zsh for seu shell de login, ele não lerá ~/.profile
, mas lerá ~/.zprofile
. Note que o zsh não precisa ser seu shell de login, mesmo que seja seu shell interativo: você pode usar /bin/sh
como seu shell de login e definir SHELL=$(command -v zsh)
em seu ambiente para que os emuladores de terminal e similares executem o zsh. Como você diz que definir suas variáveis de ambiente em ~/.zprofile
não funcionou, provavelmente é assim que seu sistema já está configurado, mas é difícil dizer sem informações mais precisas que “não funcionaram”.
Se o seu shell de login é zsh, coloque a seguinte linha no seu ~/.zprofile
para ler .profile
:
emulate ksh -c '. ~/.profile'
Geralmente, você pode usar um . ~/.profile
simples, porque é improvável que as incompatibilidades entre shells do estilo zsh e Bourne surjam em .profile
.