M1 Mac无法安装Karafka gem的架构问题求助
问题描述
在M1 Mac的现有Ruby项目中添加Karafka时,执行gem install karafka遇到架构相关的编译错误,此前类似问题已解决,但此次Karafka安装仍报错。查看Karafka仓库Issues未找到解决方案。
执行命令
gem install karafka
环境信息
Apple clang version 16.0.0 (clang-1600.0.26.4) Target: arm64-apple-darwin23.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin Ruby 3.1.4 rbenv 1.3.2 -I/usr/local/Cellar/openssl@3/3.3.2
错误信息
g++ -MD -MP -I/opt/homebrew/opt/libpq/include -I/opt/homebrew/opt/libpq/include -gstrict-dwarf -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -I/opt/homebrew/opt/libpq/include -gstrict-dwarf -O2 -fPIC -Wall -Wsign-compare -Wfloat-equal -Wpointer-arith -Wcast-align -Wno-non-virtual-dtor -c RdKafka.cpp -o RdKafka.o RdKafka.cpp:29:10: fatal error: 'string' file not found 29 | #include <string> | ^~~~~~~~ 1 error generated. make[1]: *** [RdKafka.o] Error 1 make: *** [libs] Error 2 ----- end of file -----
解决方法
确认Xcode Command Line Tools完整安装,执行:
xcode-select --install若已安装,执行重置命令:
sudo xcode-select --reset设置C++标准库环境变量,让编译器定位到头文件,执行:
export CPLUS_INCLUDE_PATH="/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1:$CPLUS_INCLUDE_PATH" export SDKROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"完成后再次尝试安装:
gem install karafka若仍报错,指定架构与OpenSSL路径安装:
arch -arm64 gem install karafka -- --with-openssl-dir=/usr/local/Cellar/openssl@3/3.3.2检查librdkafka依赖,先通过Homebrew安装:
brew install librdkafka再指定依赖路径安装gem:
gem install karafka -- --with-rdkafka-dir=$(brew --prefix librdkafka)
内容的提问来源于stack exchange,提问作者Kyle
相关产品推荐
相关产品推荐

