好的,抱歉,这有点愚蠢,但我的想法已经用完了。
目标:预先考虑/usr/local/bin到$PATH
问题: $PATH不会做我想要或期望的事情
我如何到达这里:我想开始学习编程,所以我很容易在引擎盖下闲逛,但经验不足。我使用安装了fishshell(因为它很友好!)homebrew,并将其设置为我的默认shell(在之下system prefs>users & groups>advanced)。在某个时候,我跑来brew doctor查看我的安装是否全部符合犹太标准,并且建议我移至/usr/local/bin该版本的开头,$PATH以便可以使用安装的git而不是系统副本。很好-但是在path_helper和之间fish,发生了一些事情,$PATH这是我无法控制的,而且我永远无法以正确的方式安排路径。
环境: OSX 10.8.2,从10.7ish升级,与xcode和安装devtools,加x11,homebrew和fish
更多信息:我已经把我的用户的默认外壳回bash,并尝试了各种炮弹的直通terminal.app- ,bash,。fish sh我移到/usr/local/bin的顶部,/etc/paths但没有任何改变。我浏览了各种config.fish文件,并注释掉可能与$ PATH混淆的东西,但没有帮助。我在以下文件中/etc/paths.d/:
./10-homebrew 包含 /usr/local/bin
./20-fish 包含 /usr/local/Cellar/fish/1.23.1/bin
./40-XQuartz 包含 /opt/X11/bin
我添加set +x到我的游戏中profile,当我开始时terminal.app得到:
Last login: Mon Oct 1 13:31:06 on ttys000
+ '[' -x /usr/libexec/path_helper ']'
+ eval '/usr/libexec/path_helper -s'
++ /usr/libexec/path_helper -s PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/Cellar/fish/1.23.1/bin:/opt/X11/bin";
export PATH;
+ '[' /bin/bash '!=' no ']'
+ '[' -r /etc/bashrc ']'
+ . /etc/bashrc
++ '[' -z '\s-\v\$ ' ']'
++ PS1='\h:\W \u\$ '
++ shopt -s checkwinsize
++ '[' Apple_Terminal == Apple_Terminal ']'
++ '[' -z '' ']'
++ PROMPT_COMMAND='update_terminal_cwd; '
++ update_terminal_cwd
++ local 'SEARCH= '
++ local REPLACE=%20
++ local PWD_URL=file://Chriss-iMac.local/Users/c4
++ printf '\e]7;%s\a' file://Chriss-iMac.local/Users/c4
Chriss-iMac:~ c4$
因此,看起来path_helper正在运行,但随后运行使echo $PATH我净血/usr/bin:/bin:/usr/sbin:/sbin。所以,看起来好像path_helper根本就没有做应该做的事情吗?
我确定这里存在一些我不理解的明确定义的行为,或者我在尝试修复它时感到厌烦。请帮忙!
fish通过~/.config/fish/config.fish使用with 可以使它起作用,set PATH /usr/local/bin $PATH但仍然存在一个问题,即path_helper显然不能正常工作,$PATH因此不够完善。也仍然存在$PATH脚本,从GUI启动的应用等不同的问题