一夜回到解放前, 助我战斗多年,早已年迈退休的 老Mac 不得已召回复用。
虽战功赫赫、忠心耿耿,但毕竟年迈, 重启之旅也是险象环生
现今AI横行、提词师肆虐,借AI之名,行自研之声,实则移花接木、偷龙转凤,自诩神迹 之人之事不鲜。
作为技术人,我给 老Mac 装个 python3 是合理的吧
可如今也没往日那么简单随意了,上来就 openssl@3 依赖安装失败,啪啪打脸
问题表现
测试用例校验失败
brew install openssl@3
...
make test fail
排查过程
https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/openssl@3.rb
从源码可看出,整体安装脚本较为简单, 针对 linux
和 mac
环境处理流程命令有差异
整理精简翻译 mac
流程, 基本如下:
homebrew 方式, 基础路径自然是
/usr/local/Celar
我的 老Mac 较旧架构自然是
intel
(x86_64
), 安装参数追加的则为darwin64-x86_64-cc
自行查询 cpu架构:
uname -m
perl ./Configure \
--prefix=/usr/local/Cellar/openssl@3/3.3.0 \
--openssldir=/usr/local/openssl@3 \
--libdir=lib \
no-ssl3 \
no-ssl3-method \
no-zlib \
darwin64-x86_64-cc \
enable-ec_nistp_64_gcc_128
make
make install MANDIR=/usr/local/Cellar/openssl@3/3.3.0/share/man MANSUFFIX=ssl
make test
既然 make
和 install
流程是正常的, 只是最后的 test
流程失败, 那么禁用 test
即可
- brew 的脚本并没有那么细的控制粒度, 只能手工源码编译安装这一条路了
从源码中可得 目标版本源码包下载地址
curl -O https://www.openssl.org/source/openssl-3.3.0.tar.gz
tar xzfv openssl-3.3.0.tar.gz
cd openssl-3.3.0
# 不喜欢用 perl, 直接 ./config 干净利落
./config \
--prefix=/usr/local/Cellar/openssl@3/3.3.0 \
--openssldir=/usr/local/openssl@3 \
--libdir=lib \
no-ssl3 \
no-ssl3-method \
no-zlib \
darwin64-x86_64-cc \
enable-ec_nistp_64_gcc_128
make
make install MANDIR=/usr/local/Cellar/openssl@3/3.3.0/share/man MANSUFFIX=ssl
新开终端, 验证确认
openssl --version
# OpenSSL 3.3.0 9 Apr 2024 (Library: OpenSSL 3.3.0 9 Apr 2024)
- homebrew 链接 openssl
让 brew 正确识别, 后续安装 python@3.10
分析依赖, 自然就会跳过 openssl@3
安装
brew link openssl@3
结束手工