好的,抱歉,这有点愚蠢,但我的想法已经用完了。
目标:预先考虑/usr/local/bin
到$PATH
问题: $PATH
不会做我想要或期望的事情
我如何到达这里:我想开始学习编程,所以我很容易在引擎盖下闲逛,但经验不足。我使用安装了fish
shell(因为它很友好!)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启动的应用等不同的问题