MacOS 13.2.1 Intel机型无法升级Ruby至2.7.6求助
解决MacOS 13.2.1(Intel i7)安装Ruby 2.7.6时的编译错误
针对你遇到的pthread_override_qos_class_end_np相关编译错误,这是MacOS Ventura(13.x)系统头文件语法变化与Ruby 2.7.x版本MJIT模块不兼容导致的,以下是可行的解决步骤:
方案一:禁用JIT支持安装
- 确保已安装openssl@1.1:
brew install openssl@1.1
- 执行带禁用JIT参数的安装命令:
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1) --disable-jit-support" rbenv install 2.7.6
方案二:通过CFLAGS忽略编译错误
如果方案一无效,尝试添加编译参数跳过隐式函数声明的错误检查:
CFLAGS="-Wno-error=implicit-function-declaration" RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)" rbenv install 2.7.6
前置准备:更新rbenv和ruby-build
确保你的rbenv和ruby-build是最新版本,避免工具本身的兼容性问题:
brew upgrade rbenv ruby-build
错误原因说明
MacOS 13.x的pthread.h头文件中#pragma clang assume_nonnull end的位置,导致Ruby 2.7.x的MJIT在生成头文件时解析失败,禁用JIT支持或跳过相关编译错误即可绕过该问题。
内容的提问来源于stack exchange,提问作者Sumeet
相关产品推荐
相关产品推荐

