在macOS Ventura 13.0.1上用rbenv/RVM安装Ruby 2.6.6失败求助
解决macOS Ventura 13.0.1安装Ruby 2.6.6失败的问题
兄弟,我之前在macOS Ventura 13.0.1上装Ruby 2.6.6的时候也碰到过一模一样的问题——不管用rbenv还是RVM都是编译失败,日志里全是transform_mjit_header跳过转换的提示。折腾了好一阵才搞定,给你几个实测有效的解决步骤:
1. 先搞定Xcode工具链的兼容性
老版本Ruby和Ventura自带的新编译器工具链容易冲突,先确保你的Command Line Tools是正常的:
- 重新安装或更新Command Line Tools:
xcode-select --install - 如果已经装过,重置一下路径避免缓存问题:
sudo xcode-select --reset - 一定要同意Xcode的许可协议,不然编译会偷偷失败:
sudo xcodebuild -license accept
2. 强制指定OpenSSL 1.1版本(关键!)
Ruby 2.6.x不支持OpenSSL 3.x,而Ventura默认的OpenSSL版本是3.x,这是编译失败的核心原因之一:
- 先通过Homebrew安装OpenSSL 1.1:
如果提示和现有OpenSSL冲突,先卸载高版本:brew install openssl@1.1brew uninstall --ignore-dependencies openssl
3. 设置环境变量后再安装
不管用rbenv还是RVM,安装前都要设置对应的环境变量,让编译器用对的依赖:
用rbenv的情况:
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)" export CFLAGS="-Wno-error=implicit-function-declaration" export LDFLAGS="-L$(brew --prefix openssl@1.1)/lib" export CPPFLAGS="-I$(brew --prefix openssl@1.1)/include" # 然后执行安装 rbenv install 2.6.6
用RVM的情况:
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)" export CFLAGS="-Wno-error=implicit-function-declaration" # 然后执行安装,额外指定openssl路径 rvm install 2.6.6 --with-openssl-dir=$(brew --prefix openssl@1.1)
4. 清理旧编译缓存再重试
如果之前的失败留下了缓存文件,可能会影响新的安装:
- rbenv:删除对应版本的源码缓存
rm -rf ~/.rbenv/sources/2.6.6 - RVM:清理所有缓存后重装
rvm cleanup all rvm reinstall 2.6.6
5. 确保工具的路径优先级正确
检查你的终端环境里,rbenv/RVM的路径是不是在系统Ruby前面,避免冲突:
- 打开你的shell配置文件(比如
~/.zshrc或~/.bashrc),确保有以下内容:- rbenv用户:
eval "$(rbenv init - zsh)" - RVM用户:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
- rbenv用户:
- 保存后重启终端,或者执行
source ~/.zshrc生效
按这个流程走下来,应该就能顺利装上Ruby 2.6.6了,我当时就是这么解决的。
内容的提问来源于stack exchange,提问作者GidB
相关产品推荐
相关产品推荐

