Mac M1安装postgres@15时如何避免重复安装openssl@3?
解决Mac M1上Homebrew安装postgres@15时重复编译openssl@3的问题
先修复Homebrew路径配置
日志里的HOMEBREW_CELLAR和HOMEBREW_PREFIX路径警告,大概率是brew没识别到已安装openssl的核心原因:
- 查看当前的brew环境变量:
echo $HOMEBREW_PREFIX $HOMEBREW_CELLAR - M1芯片的Homebrew默认路径是
/opt/homebrew(HOMEBREW_PREFIX)和/opt/homebrew/Cellar(HOMEBREW_CELLAR),如果输出不符,编辑你的shell配置文件(~/.zshrc或~/.bash_profile),添加:export HOMEBREW_PREFIX="/opt/homebrew" export HOMEBREW_CELLAR="/opt/homebrew/Cellar" - 执行
source ~/.zshrc(对应你使用的shell)让配置生效,再运行brew doctor修复所有提示的问题。
指定已安装的openssl@3作为依赖安装postgres@15
直接通过环境变量告诉brew使用已装的openssl版本,无需重新编译:
- 先获取openssl@3的安装路径:
brew --prefix openssl@3 - 把路径代入下面的命令执行安装:
OPENSSL_PREFIX=$(brew --prefix openssl@3) \ LDFLAGS="-L$OPENSSL_PREFIX/lib" \ CPPFLAGS="-I$OPENSSL_PREFIX/include" \ PKG_CONFIG_PATH="$OPENSSL_PREFIX/lib/pkgconfig" \ brew install postgresql@15
确保openssl@3被Homebrew正确链接
如果是手动安装的openssl,可能未被brew关联,先做链接操作:
- 取消旧链接(如果存在):
brew unlink openssl@3 && brew link --force openssl@3 - 再执行安装命令:
brew install postgresql@15
手动创建软链接让brew识别非默认路径的openssl
如果你的openssl@1.1或3安装在brew默认Cellar以外的路径(比如/usr/local/opt),可以给它在brew的Cellar里建软链接:
- 先查看openssl的版本号:
openssl version - 假设版本是3.0.10,执行软链接创建(替换成你的实际路径和版本号):
sudo ln -s /usr/local/opt/openssl@3 /opt/homebrew/Cellar/openssl@3/3.0.10 - 再执行
brew link openssl@3,之后安装postgres@15即可。
内容的提问来源于stack exchange,提问作者Dima Lituiev
相关产品推荐
相关产品推荐

