Path 设置zsh路径未生成所需订单
我正在Mac OS X 10.8.3上使用自制软件。Homebrew希望路径中的Path 设置zsh路径未生成所需订单,path,zsh,homebrew,zshrc,Path,Zsh,Homebrew,Zshrc,我正在Mac OS X 10.8.3上使用自制软件。Homebrew希望路径中的/usr/local/bin目录早于/usr/bin,否则将使用系统提供的程序代替Homebrew管理的替换 我使用的是zsh,在我的.zshenv中,我重置了路径,然后使用PATH\u helper对其进行初始化,如下所示: if [ -x /usr/libexec/path_helper ]; then PATH='' eval `/usr/libexec/path_helper -s` fi 紧接着,
/usr/local/bin
目录早于/usr/bin
,否则将使用系统提供的程序代替Homebrew管理的替换
我使用的是zsh,在我的.zshenv
中,我重置了路径,然后使用PATH\u helper对其进行初始化,如下所示:
if [ -x /usr/libexec/path_helper ]; then
PATH=''
eval `/usr/libexec/path_helper -s`
fi
紧接着,在.zshenv
中,我向路径添加了/usr/local/bin
export PATH="/usr/local/bin:$PATH"
typeset -U PATH
$PATH中还添加了各种其他内容。RVM,/usr/local/sbin
和我的个人bin
目录:
export PATH=$HOME/.rvm/bin :$PATH
...
export PATH=$PATH:/usr/local/sbin:$HOME/bin
最后,我使用typeset-u
删除路径中的任何副本(尽管它们来自何处对我来说是个谜)
export PATH="/usr/local/bin:$PATH"
typeset -U 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/path
设置了以下路径:
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
因此,我编辑了该文件并删除了/usr/local/bin'选项,以便设置它的唯一位置是在.zshenv`
所有这些都包含在GitHub()上的我的dotfile存储库中,并在两台笔记本电脑上使用。在第一台笔记本电脑上,路径正确,RVM条目后面紧跟着/usr/local/bin
。在第二台笔记本电脑上,它显示为我上面详述的内容
当zsh配置为相同副本时,我无法解释为什么第二台机器上的路径不正确
有人能告诉我为什么这条路会乱吗
谢谢。这行错了:
export PATH=$HOME/.rvm/bin :$PATH
应该是:
export PATH=$HOME/.rvm/bin:$PATH
:$PATH
之前的空格导致您丢失$PATH
以前的内容zsh按以下顺序读取文件(从)
$ZDOTDIR/.zshenv
/etc/zprofile
(如果登录)
$ZDOTDIR/.zprofile
(如果登录)
/etc/zshrc
(如果是交互式的)
$ZDOTDIR/.zshrc
(如果是交互式的)
/etc/zlogin
(如果登录)
$ZDOTDIR/.zlogin
(如果登录)
如果ZDOTDIR未设置,则使用HOME。根据安装情况,上面列出的位于/etc中的文件可能位于另一个目录中
您对(1)的更改在(2)之前;(2)的macOS默认值为:
因此,您的更改将被macOS默认值覆盖。您需要稍后在管道中更改路径以保持秩序。是的,这是错误的。谢谢你的帮助。但是,更正它对原始问题没有影响。两台笔记本电脑都使用相同的zsh配置(通过Git),其中一台路径正确,而另一台没有。请尝试将set-x
放在.zshenv的顶部。然后,它将在执行命令时显示这些命令,您可以看到路径是如何演变的。这应该可以帮助您看到问题的症结所在。通过遵循此问题的说明()并编辑/etc/paths文件,将/usr/local/bin
移到列表的开头,我可以使两台机器都具有匹配且正确的路径。我仍然不明白为什么从我的.zshenv
导出路径没有按预期工作。