使用rvm安装Ruby时遇__rvm_make -j8错误(M1 macOS)
解决M1 Mac上RVM安装Ruby 3.1.x/3.2.x时OpenSSL编译错误
针对M1芯片MacBook Pro(macOS Ventura 13.5)上RVM安装Ruby 3.1.x/3.2.x出现的__rvm_make -j8错误(根源是ossl_ts.c中struct TS_verify_ctx定义不完整),可以按以下步骤解决:
清理冲突的OpenSSL版本并重新安装指定版本
先卸载所有可能冲突的OpenSSL包,再安装Ruby 3.1.x/3.2.x兼容的openssl@1.1:brew uninstall --ignore-dependencies openssl openssl@1.1 openssl@3 brew install openssl@1.1配置编译环境变量,绑定OpenSSL路径
临时设置环境变量,确保RVM编译Ruby时指向正确的OpenSSL库:export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib" export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include" export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@1.1/lib/pkgconfig" export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/opt/openssl@1.1"更新RVM到最新开发版
稳定版RVM 3.0.0对M1架构的兼容性可能不足,切换到最新HEAD版本:rvm get head清理编译缓存并重新安装Ruby
先清理RVM的编译缓存,再指定OpenSSL路径安装目标Ruby版本:rvm cleanup all rvm install 3.1.4 --with-openssl-dir=/opt/homebrew/opt/openssl@1.1额外检查:更新Xcode命令行工具
确保系统编译工具是最新版本,避免架构兼容问题:xcode-select --install softwareupdate --install -a
原因说明
M1芯片的arm64架构与传统x86_64存在差异,Ruby 3.1.x/3.2.x编译时对OpenSSL版本有特定依赖,同时旧版RVM对M1的支持不完善。通过指定openssl@1.1路径、更新RVM到最新版本,可解决struct TS_verify_ctx定义不完整的编译错误。
内容的提问来源于stack exchange,提问作者davidlj95
相关产品推荐
相关产品推荐

