更新到 OS X 10.10 后(虽然这可能无关紧要),我无法运行任何brew
命令。任何命令都给了我这个错误:
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 26: /usr/local/Library/brew.rb: Undefined error: 0
我发现这并不是因为ruby
缺少,而是因为需要进行更改/usr/local/Library/brew.rb
。
如果我进入该文件并#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0
用#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
brew
命令替换,就可以正常工作。太棒了!
brew update
但是,由于这个原因,我没法这样做。我现在收到此错误:
error: Your local changes to the following files would be overwritten by merge:
Library/brew.rb
Please, commit your changes or stash them before you can merge.
Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master
合并后应用的更新很可能修复我原来的问题,但如果没有本地更改,我就无法应用它。如果我没有本地更改,我就无法更新。
是否有一个优雅的解决方案可以解决这个问题并且不会破坏我的整个工作流程。
答案1
在搜索确切的错误之后,我发现 AskDifferent 已经回答了这个问题:https://apple.stackexchange.com/questions/153790/how-to-fix-brew-after-its-upgrade-to-yosemite
cd /usr/local/Library
git pull origin master
你可以用 Git 手动更新所有内容。但你无法/usr/local/Library/brew.rb
以任何方式进行编辑,否则你会遇到相同的合并问题。