Mac High Sierra 10.13.10中HomeBrew运行报错求助
嘿,这个问题我熟!在High Sierra这种老系统上跑新版Homebrew很容易踩这个Ruby兼容的坑,我给你两个靠谱的解决办法:
先明确下你的问题场景:你使用搭载Mac High Sierra 10.13.10的设备,执行brew --version时抛出了Ruby加载错误,具体报错内容如下:
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in
require': cannot load such file -- mach (LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:inrequire'
from /usr/local/Library/Homebrew/extend/pathname.rb:2:in<top (requ...
这个错误的核心原因是:High Sierra自带的Ruby 2.3版本过于老旧,已经不被新版Homebrew支持了。下面是两种可行的修复方案:
方案1:降级Homebrew到兼容High Sierra的版本
新版Homebrew已经停止对10.13及以下系统的支持,所以我们需要回滚到最后一批兼容该系统的Homebrew版本:
cd /usr/local/Homebrew git checkout 2.7.0
这个版本是经过验证的、能稳定在High Sierra上运行的Homebrew版本,执行完后再运行brew --version应该就能正常工作了。后续注意不要随意执行brew update,避免再次升级到不兼容的版本。
方案2:手动安装高版本Ruby并指定给Homebrew使用
如果你不想降级Homebrew,可以自行安装一个适配的Ruby版本,让Homebrew调用这个新Ruby而非系统自带的老旧版本:
- 先安装Ruby版本管理器rbenv(用系统自带Ruby临时执行即可):
如果你用的是zsh终端,把上面的git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(rbenv init -)"' >> ~/.bash_profile source ~/.bash_profile git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build.bash_profile换成.zshrc即可 - 安装一个兼容High Sierra的Ruby版本(比如2.7.6,这个版本适配性很好):
rbenv install 2.7.6 rbenv global 2.7.6 - 重启终端,再执行
brew --version,就能正常加载了。
额外提醒
- 降级Homebrew后,部分新发布的软件包可能无法安装(因为它们也要求更高的系统版本),这时候可以尝试查找软件包的旧版本来安装。
- 如果硬件允许,也可以考虑升级系统到Mojave及以上版本,从根源上解决这类兼容问题(不过High Sierra的老设备可能会有硬件限制)。
内容的提问来源于stack exchange,提问作者Reddirt

