You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS 10.12 Sierra下brew安装openssl 1.1.1l编译报错解决方案求助

macOS 10.12 Sierra下Homebrew安装openssl 1.1.1l编译报错解决方案

报错根因

本次编译错误是macOS 10.12.6自带的CommonCrypto框架版本过低,缺少openssl 1.1.1l依赖的CCCryptorStatus类型定义和kCCSuccess枚举值,属于旧系统与新版openssl的兼容性问题。

方案1:修复编译问题直接安装openssl 1.1.1l

无需更换依赖,直接修改源码适配旧系统即可完成编译:

  • 进入Homebrew缓存目录:
    cd /Users/user/Library/Caches/Homebrew/downloads/
    
  • 解压已下载的openssl源码包:
    tar zxf b6ccc5a2a602c2af3480bbcf1656bd9844595974ba60501871ac12504508e818--openssl-1.1.1l.tar.gz
    
  • 进入解压后的源码目录,编辑crypto/rand/rand_unix.c文件:
    • 找到第38行的#include <CommonCrypto/CommonRandom.h>,将整行注释
    • 找到385行附近调用CCRandomGenerateBytes的代码块,替换为如下逻辑:
      FILE *f = fopen("/dev/urandom", "rb");
      if (f != NULL) {
          fread(buf, 1, buflen, f);
          fclose(f);
      } else {
          return 0;
      }
      
  • 保存修改后,将修改后的源码重新打包覆盖原压缩包,执行brew install openssl即可完成安装。

方案2:让Python使用已安装的openssl 1.0作为依赖

如果不需要openssl 1.1版本,可以直接强制Python使用已安装的1.0版本,跳过新版安装:

方式A:手动编译Python指定依赖路径

  • 先确认openssl 1.0的安装路径,默认是/usr/local/opt/openssl@1.0
  • 下载对应版本的Python源码包,解压后进入源码目录执行配置命令:
    ./configure --prefix=/usr/local/opt/python@3.9 \
    --with-openssl=/usr/local/opt/openssl@1.0 \
    --with-openssl-rpath=auto
    
  • 执行make && make install完成安装,将该Python路径加入系统环境变量后,Homebrew会识别到已安装的Python,不会再自动拉取openssl 1.1依赖。

方式B:Homebrew安装时跳过依赖检查

  • 执行命令跳过依赖安装Python:
    brew install --ignore-dependencies python
    
  • 安装完成后在~/.zshrc(bash用户修改~/.bash_profile)中添加如下环境变量,指定Python调用openssl 1.0的库文件:
    export LDFLAGS="-L/usr/local/opt/openssl@1.0/lib"
    export CPPFLAGS="-I/usr/local/opt/openssl@1.0/include"
    export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.0/lib/pkgconfig"
    
  • 执行source ~/.zshrc(对应bash执行source ~/.bash_profile)使配置生效即可。

内容的提问来源于stack exchange,提问作者vinayman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:39:02