运行Express应用时遇Aerospike符号缺失错误,求Intel Mac解决方案
解决Aerospike 3.11.7在Intel Mac上的_FIPS_mode_set符号缺失错误
你遇到的_FIPS_mode_set符号找不到错误,是因为旧版Aerospike客户端依赖的OpenSSL FIPS相关符号,在当前Mac的系统环境中不存在。针对Intel芯片MacBook Air的场景,试试以下几个解决办法:
方案一:安装兼容的OpenSSL版本并重新编译
旧版Aerospike客户端对OpenSSL 1.1.x系列兼容性更好,步骤如下:- 用Homebrew安装OpenSSL 1.1:
brew install openssl@1.1 - 配置环境变量让编译工具找到该版本:
export OPENSSL_ROOT_DIR=$(brew --prefix openssl@1.1) export OPENSSL_LIB_DIR=$(brew --prefix openssl@1.1)/lib export OPENSSL_INCLUDE_DIR=$(brew --prefix openssl@1.1)/include - 删除现有aerospike依赖并重新安装:
rm -rf node_modules/aerospike && npm install
- 用Homebrew安装OpenSSL 1.1:
方案二:升级Aerospike客户端版本
3.11.7版本较老,后续版本已修复Mac环境下的兼容性问题。建议升级到4.x系列(兼顾API兼容性):- 修改
package.json中的aerospike依赖为:"aerospike": "^4.10.0" - 删除旧依赖和锁文件:
rm -rf node_modules package-lock.json - 重新安装所有依赖:
npm install
- 修改
方案三:编译时禁用FIPS模式
如果前两个方案无效,可以尝试编译Aerospike模块时跳过FIPS相关配置:- 进入aerospike模块目录:
cd node_modules/aerospike - 重新编译并禁用FIPS:
npm rebuild --fips=0
- 进入aerospike模块目录:
内容的提问来源于stack exchange,提问作者Razi Momin
相关产品推荐
相关产品推荐

