Mac Catalina 10.15.7环境下使用Homebrew安装rbenv出现SSL错误如何解决
Catalina 10.15.7 下Homebrew安装rbenv的SSL报错解决方法
核心问题定位
报错中curl: (35) ... wrong version number属于HTTPS TLS握手阶段的异常,通常由本地网络链路干扰、旧系统SSL库版本不兼容、代理配置错误三类原因导致下载链路中断。
分步解决操作
1. 排查代理与基础网络配置
这类SSL握手错误多数由代理配置不匹配导致:
- 检查系统与终端的代理设置,若开启了全局代理,临时关闭后测试基础连通性,确认握手异常是否消失
- 若必须使用代理,需核对代理的HTTPS转发规则,避免非加密流量被强制触发HTTPS握手
- 临时清除终端内错误的代理环境变量,执行
unset http_proxy https_proxy all_proxy后重新发起安装命令 - 公司内网环境需检查是否存在SSL拦截网关,这类网关会替换站点证书,和旧版Mac的SSL库不匹配时会直接触发该报错,需要将对应下载域名加入网关白名单
2. 修复旧系统的SSL库与Homebrew源兼容问题
Catalina 10.15.7 自带的OpenSSL版本较旧,且旧版Homebrew仍在使用已停止服务的Bintray分发源,和当前站点要求的TLS协商规则不匹配时会触发握手失败:
- 先将Homebrew核心仓库重置到适配Catalina的最后维护版本,执行
brew update-reset,替换已经停服的Bintray源为当前可用的分发地址,避免旧版Homebrew的下载脚本存在兼容缺陷 - 手动验证TLS版本适配性,执行
curl --tlsv1.2 -L -o /tmp/test_download.tar.gz https://github.com/rbenv/ruby-build/archive/v20201221.tar.gz,如果能正常完成下载,说明是默认TLS版本协商不兼容,需要调整curl的默认配置强制使用TLS1.2 - 通过Homebrew安装适配Catalina的
openssl@1.1组件,安装完成后将shell环境的SSL路径指向新装的库,替换系统自带的旧版本OpenSSL,解决证书与TLS版本兼容问题
3. 手动补全缓存资源绕开下载环节
如果网络调整无法快速解决,可以直接手动将缺失的资源放入Homebrew的本地缓存目录,跳过自动下载步骤:
- 获取对应版本的ruby-build安装压缩包后,将其放入Homebrew的本地缓存路径:
~/Library/Caches/Homebrew/downloads/,文件重命名为与报错提示中一致的哈希命名格式 - 重新执行
brew install rbenv命令,Homebrew检测到本地缓存已存在对应资源后,会自动跳过下载流程进入安装阶段 - 安装完成后执行
rbenv init完成shell环境配置,即可正常使用rbenv管理Ruby版本
内容的提问来源于stack exchange,提问作者Gastón Ramos
相关产品推荐
相关产品推荐

