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
とかを書いてもらえれば良いと思います。