OSXのPATHについて(path_helper)
PATHについて書き残し.
自分のzshrcでは数個PATHを追加してるんだけど,
そこに書いていないPATHはどこで追加されているのだろう...と思って調べた.
どうやら普通は,
/etc/zshenv
で追加されるらしい.
が,OSXの場合このファイルには
# system-wide environment settings for zsh(1) if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi
と書かれていた.
そして,このpath_helperは何をしているのか...
catしてみたらバイナリだった.
/Users/xxxxx% man /usr/libexec/path_helper
No manual entry for /usr/libexec/path_helper
マニュアル無し.
- hも--helpも効かない.
実行すると,
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/texbin:/usr/local/sbin:/Users/xxxxx/bin"; export PATH;
が標準出力に表示される.
- sオプションつけても付けなくても変わらなかった..
この出力された文字列をevalでコマンドとして実行してPATH変数に設定するっぽい.
さらに調べてみると,
http://d.hatena.ne.jp/ikeas/20090925/1253899650
http://d.hatena.ne.jp/koseki2/20081201/macportPath
http://logrepo.blogspot.jp/2010/12/zsh.html
と,先人たちが色々書いていた.
Snow Leopard(10.6)からバイナリになったらしい.
結局,path_helperは
/etc/paths /etc/paths.d/*
を読み込んでPATHを組み立ててるらしい.
それぞれのファイルを覗いてみると,
/Users/xxxxx% cat /etc/paths; cat /etc/paths.d/* /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/X11/bin /usr/texbin
おー.あったあった.なるほどね.
でも,各OSで.zshrc使いまわしたいからこういうところは一ファイルでやりたいなぁ.
どうしたら良いんでしょうか.