macos升级后ruby崩溃主因是sip锁定系统ruby(/usr/bin/ruby)及路径权限重置;应确认which ruby非系统路径,用rbenv安装用户级ruby(如3.2.2),配置~/.zshrc,再通过bundle install还原依赖,禁用sudo gem install。
macos系统升级后ruby环境崩溃,核心原因不是“版本不匹配”,而是系统底层机制变化冲击了原有ruby运行路径和权限模型。关键要区分清楚:系统自带ruby(/usr/bin/ruby)本就不该用,崩溃往往是因为你误用了它,或新系统切断了旧安装路径的访问能力。
Ruby运行时归属必须明确
先确认你当前用的到底是不是系统Ruby:
- 执行
which ruby—— 若输出/usr/bin/ruby,说明正被SIP保护的老版本拖累,立刻切换 - 执行
ruby -v && gem env home—— 两个路径必须一致,且不能以/usr或/System开头;理想状态是像~/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0这样可写、用户级的路径 - 执行
bundle -v—— 报错“command not found”说明Bundler没装在当前Ruby下,不能靠sudo gem install bundler补救
用rbenv重建干净的Ruby环境
比RVM更轻量、无全局hook干扰,适配Sonoma及后续版本:
Python Mac版 为 Python.org 官方提供的 Python 3.14.6 macOS 11 及以上安装包,适合在macOS环境中安装、运行 Python 代码并学习函数、模块和脚本开发。
- 确保已装Xcode命令行工具:
xcode-select --install - 通过Homebrew安装:
brew install rbenv ruby-build - 初始化shell(zsh用户):
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc && source ~/.zshrc - 安装并设为全局:
rbenv install 3.2.2 && rbenv global 3.2.2 - 验证:
ruby -v显示ruby 3.2.2,且which ruby指向~/.rbenv/shims/ruby
Gem依赖必须走Bundle流程
有Gemfile的项目,绝不碰gem install全局安装:
- 进项目目录后,先锁定Ruby版本:
rbenv local 3.2.2(确保与Gemfile.lock兼容) - 直接运行:
bundle install—— 它会按锁文件精确还原,自动处理嵌套冲突 - 若提示“Could not find gem”,检查
Gemfile里source是否可用;国内用户加淘宝镜像:bundle config set --local mirror.https://rubygems.org https://ruby.taobao.org - 若卡在native extension(如nokogiri),重试前确认Xcode CLT已装,必要时加编译参数:
bundle config build.nokogiri --use-system-libraries
别再碰sudo gem install
这是绝大多数权限报错的根源。Homebrew安装的Ruby或rbenv管理的Ruby都支持用户空间安装:
- 所有gem默认装到当前Ruby版本的用户目录下,无需提权
- 如果之前用过
sudo gem install,先清理:gem uninstall cocoapods && gem cleanup - 后续统一用
bundle exec pod install调用Cocoapods,避免PATH混乱










