安装pg 1.0.0时遇'libpq-fe.h'未找到错误,Bundler无法继续
解决bundle install时pg (1.0.0)安装失败的问题
从你贴出的错误日志来看,问题很明确:pg gem在编译的时候找不到PostgreSQL的两个关键依赖——pg_config工具和libpq-fe.h头文件,这直接导致了extconf编译失败。
别担心,针对你的macOS环境(从路径x86_64-darwin17能判断是High Sierra系统),可以按下面的步骤解决:
方案一:完整安装PostgreSQL(推荐)
这是最稳妥的方式,因为后续开发你大概率需要用到PostgreSQL数据库服务:
- 用Homebrew安装PostgreSQL:
brew install postgresql - 手动指定
pg_config路径来安装pg gem(避免环境变量路径识别问题):gem install pg -v '1.0.0' -- --with-pg-config=$(brew --prefix postgresql)/bin/pg_config - 最后重新运行bundle安装:
bundle install
方案二:仅安装PostgreSQL开发依赖(适合不需要数据库服务的场景)
如果你暂时不需要运行PostgreSQL服务,只需要安装开发包来编译pg gem:
- 安装libpq(PostgreSQL的开发库):
brew install libpq - 同样指定路径安装pg gem:
gem install pg -v '1.0.0' -- --with-pg-config=$(brew --prefix libpq)/bin/pg_config - 再执行
bundle install即可
补充说明
错误日志里的clang编译失败,本质是因为pg是原生扩展gem,需要依赖系统里的PostgreSQL开发文件才能完成编译。通过Homebrew安装的PostgreSQL或libpq会自动提供这些文件,指定--with-pg-config参数是为了让gem准确找到配置工具,避免路径识别偏差。
内容的提问来源于stack exchange,提问作者Leo Tyndall
相关产品推荐
相关产品推荐

