Mac环境下无法安装sqlite3 gem 1.4.2版本的问题求助
解决Intel架构Mac上sqlite3 gem 1.4.x版本编译失败的问题
针对Intel Mac(OS 15.1.1)、Ruby 2.7.2环境下,sqlite3 gem 1.4.1及以上版本编译失败的问题,以下是几个可行的解决思路:
1. 指定sqlite3路径并补充编译参数
brew安装的高版本sqlite3(3.48.0)与gem 1.4.x的编译逻辑存在兼容性冲突,需明确指定brew安装的sqlite3目录,并补充忽略整数-指针转换错误的编译参数:
gem install sqlite3 -v 1.4.2 --with-sqlite3-dir=$(brew --prefix sqlite3) --with-cflags="-Wno-error=implicit-function-declaration -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion"
如果通过bundle install安装依赖,先配置bundle的编译参数:
bundle config build.sqlite3 --with-sqlite3-dir=$(brew --prefix sqlite3) --with-cflags="-Wno-error=implicit-function-declaration -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion"
再执行bundle install即可。
2. 降级brew的sqlite3版本
高版本sqlite3的API变更可能导致旧版gem编译失败,可临时降级到与gem 1.4.x兼容的版本(如3.36.x):
brew install sqlite3@3.36 brew link --force sqlite3@3.36
完成gem安装后,若需恢复高版本sqlite3,执行:
brew unlink sqlite3@3.36 && brew link --force sqlite3
3. 重置Xcode命令行工具
确保Xcode命令行工具版本与系统匹配,尝试重置或重新安装:
sudo xcode-select --reset # 或重新安装 xcode-select --install
注意事项
Ruby 2.7.2属于较旧版本,与macOS 15.1.1的编译环境存在一定兼容性差异。若上述方法均无效,可考虑升级Ruby到3.0+版本(需确认旧版HTTP服务器依赖支持)。
内容的提问来源于stack exchange,提问作者FATCullen
相关产品推荐
相关产品推荐

