我在 Mac OS X 10.8.3 上使用 Homebrew。Homebrew 希望/usr/local/bin
PATH 中的目录早于/usr/bin
,否则将使用系统提供的程序而不是 Homebrew 管理的替换。
我正在使用 zsh,并在我.zshenv
的重置 PATH 中,然后使用 path_helper 对其进行初始化,如下所示:
if [ -x /usr/libexec/path_helper ]; then
PATH=''
eval `/usr/libexec/path_helper -s`
fi
紧接着.zshenv
,我也在/usr/local/bin
PATH 中添加了前缀。
export PATH="/usr/local/bin:$PATH"
$PATH 还有其他各种附加功能。RVM/usr/local/sbin
和我的个人bin
目录:
export PATH=$HOME/.rvm/bin :$PATH
...
export PATH=$PATH:/usr/local/sbin:$HOME/bin
最后,我使用typeset -u
从 PATH 中删除任何重复项(尽管它们来自哪里对我来说是个谜)。
typeset -U PATH
毕竟这就是我的 PATH 的样子:
/Users/mark/.rvm/gems/ruby-1.9.3-p374/bin
/Users/mark/.rvm/gems/ruby-1.9.3-p374@global/bin
/Users/mark/.rvm/rubies/ruby-1.9.3-p374/bin
/Users/mark/.rvm/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/local/sbin
/Users/mark/bin
我知道/etc/paths
设置这些路径:
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
所以我编辑了那个文件并删除了/usr/local/bin' option so that the only place it is being set is in
.zshenv`。
所有这些都包含在我在 GitHub ( https://github.com/zan5hin/dotfiles )上的 dotfile 存储库中,并且正在两台笔记本电脑上使用。在第一台笔记本电脑上,路径是正确的,/usr/local/bin
紧跟在 RVM 条目之后。正如我在上面详述的那样,在第二台笔记本电脑上它出现了。
当 zsh 配置是相同的副本时,我无法解释为什么第二台机器上的路径不正确。
任何人都可以建议为什么路径会乱序吗?
谢谢。