Mac Sequoia 15.0.1(M2芯片)使用RVM安装Ruby 3.2.2及旧版本时OpenSSL@1.1相关错误的解决求助
Mac Sequoia 15.0.1(M2芯片)使用RVM安装Ruby 3.2.2及旧版本时OpenSSL@1.1相关错误的解决求助
问题背景
看起来你踩了Homebrew废弃OpenSSL@1.1的坑——RVM还在默认尝试安装已经被上游停止支持(2024-10-24禁用)的OpenSSL@1.1,哪怕你已经装了OpenSSL@3并尝试指定路径也没生效。别慌,咱们一步步来解决:
解决方案
核心思路是让RVM放弃对OpenSSL@1.1的执念,转而使用你已安装的OpenSSL@3,具体可以按以下步骤尝试:
1. 先把RVM更到最新稳定版
老版本的RVM大概率是硬编码了OpenSSL@1.1的依赖,更新到最新版后应该会适配OpenSSL@3,这是最直接的办法:
rvm get stable
更新完记得重启终端,或者执行source ~/.zshrc(bash用户用source ~/.bash_profile)让新配置生效。
2. 正确配置环境变量后重新安装
别混合多种指定参数的方式,统一用下面的命令来配置和安装:
# 先获取OpenSSL@3的正确安装路径 export OPENSSL_PREFIX=$(brew --prefix openssl@3) # 设置Ruby编译时的OpenSSL路径参数 export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$OPENSSL_PREFIX" # 用RVM安装Ruby,此时会自动调用你已装的OpenSSL@3 rvm install ruby-3.2.2
3. 手动装依赖,跳过RVM的自动依赖检查
如果RVM还是死磕OpenSSL@1.1,那我们先手动装齐所有其他必需依赖,再让RVM跳过自动依赖安装步骤:
# 安装Ruby编译需要的其他工具包 brew install autoconf automake libtool pkg-config coreutils libyaml # 确保OpenSSL@3已安装 brew install openssl@3 # 再次指定OpenSSL路径 export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@3)" # 安装Ruby,用--skip-autoreconf跳过RVM的自动依赖检测 rvm install ruby-3.2.2 --skip-autoreconf
4. 试试RVM专用的OpenSSL参数
RVM有自己的参数来指定OpenSSL路径,这种方式更直接:
rvm install ruby-3.2.2 --with-openssl=$(brew --prefix openssl@3)
额外排查点
如果以上方法都不管用,你可以:
- 检查你的shell配置文件(
~/.zshrc/~/.bash_profile)里有没有旧的OpenSSL@1.1相关环境变量,把它删掉或者替换成OpenSSL@3的路径。 - 执行
rvm info查看当前RVM配置,确认ruby_configure_opts是否正确指向了OpenSSL@3的路径。
备注:内容来源于stack exchange,提问作者Pramod Itagi
相关产品推荐
相关产品推荐

