Mac の zsh で PATH がおかしくなる問題がありましたが、解決に至ったのでご報告させて頂きます。
問題
問題としては、
- zsh が起動した際に
/etc/zprofile
が読み込まれる /etc/zprofile
がpath_helper
を実行するpath_helper
が/etc/paths
、/etc/paths.d
を読み込んでPATH
環境変数を設定する
ということで、勝手に(というか、これが通常のシェルの動作ではありますが) /etc/zprofile
が読み込まれていたことが原因といえば原因です。
解決策
実は、3.1.6 あたりから no_global_rcs
というオプションが追加されていて、これを設定すると /etc/z*
のファイルが読み込まれなくなることになる。
New features in zsh version 3.1.6 (beta version)
(snip)
NO_GLOBAL_RCS can force /etc/z* files after /etc/zshenv to be skipped. (Please don't use this as an excuse to stuff more into /etc/zshenv!) http://zsh.sourceforge.net/releases.html
そういうわけなので、.zshenv
あたりに
setopt no_global_rcs
とかを書いてもらえれば良いと思います。