gem install pg 在 Mac El Capitan 上不起作用
Posted
技术标签:
【中文标题】gem install pg 在 Mac El Capitan 上不起作用【英文标题】:gem install pg not working on Mac El Capitan 【发布时间】:2016-01-25 01:20:57 【问题描述】:我尝试在 Mac El Capitan 上安装 pg Gem,但总是收到此错误:
Gem::Installer::ExtensionBuildError: 错误: 无法构建 gem 原生扩展。 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-pg-config=/Users/ricardolopes/Developer/homebrew/bin/pg_config 使用来自 /Users/ricardolopes/Developer/homebrew/bin/pg_config 的配置值 检查 libpq-fe.h... 是的 检查 libpq/libpq-fs.h... 是的 检查 pg_config_manual.h... 是 检查 -lpq 中的 PQconnectdb()... 否 检查 -llibpq 中的 PQconnectdb()... 否 检查 -lms/libpq 中的 PQconnectdb()... 否 找不到 PostgreSQL 客户端库 (libpq) *** extconf.rb 失败 *** 由于某种原因无法创建 Makefile,可能缺乏必要 库和/或标题。检查 mkmf.log 文件以获取更多详细信息。你可以 需要配置选项。 提供的配置选项: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=$opt-dir/include --with-opt-lib --without-opt-lib=$opt-dir/lib --with-make-prog --没有-make-prog --srcdir=。 --curdir --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby --with-pg --没有-pg --启用-windows-cross --禁用-windows-cross --with-pg-config --with-pg-dir --没有-pg-dir --with-pg-include --without-pg-include=$pg-dir/include --with-pg-lib --without-pg-lib=$pg-dir/ --with-pqlib --没有-pqlib --with-libpqlib --没有-libpqlib --with-ms/libpqlib --没有-ms/libpqlib Gem 文件将继续安装在 /Users/ricardolopes/Code/site-noticias/vendor/bundle/ruby/2.0.0/gems/pg-0.18.3 以供检查。 结果记录到 /Users/ricardolopes/Code/site-noticias/vendor/bundle/ruby/2.0.0/gems/pg-0.18.3/ext/gem_make.out 安装 pg (0.18.3) 时出错,Bundler 无法继续。 在捆绑之前确保 gem install pg -v '0.18.3' 成功。我也试过了:
ARCHFLAGS="-arch x86_64" gem install pg
当我尝试它时,我得到了:
构建原生扩展。这可能需要一段时间... 成功安装pg-0.18.3 无效选项:-f Fivefish (无效选项被忽略) 解析 pg-0.18.3 的文档 3 秒后完成为 pg 安装文档 已安装 1 个宝石但我运行bundle install
并得到与本文开头相同的错误。
我尝试从 brew 重新安装 PostgresSQL。
【问题讨论】:
【参考方案1】:试试这个:
酿造更新 brew 安装 postgresql sudo gem install pg -v 'VERSION'【讨论】:
我和原帖有同样的问题。我试过这个,但它没有解决问题。我也尝试了我能找到的一切。和OP一样,我尝试过从自制软件更新和重新安装。没有喜悦。这个问题使我的项目完全、无限期地停止。 重新安装电脑后,我又遇到了同样的问题。这在 10.11.2 上对我有用:sudo su
和 env ARCHFLAGS="-arch x86_64" gem install pg -v '0.18.1'
它适用于 Mac OS X 10.11.6 和 Bundler 版本 1.12.5【参考方案2】:
这对我有用:sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
如果与 9.4 不同,请记住将 9.4 更改为您的 postgres 版本。
【讨论】:
【参考方案3】:对于一个基本的 Rails 应用程序,您可能已经安装了 SQLite,但在您的 Gemfile 中,它可能只是:
gem 'sqlite3'
您是否只需要 PostgreSQL 进行生产?确保您的 Gemfile 具有如下内容:
group :production do
gem 'pg'
end
另外,请确保您的 Gemfile 具有仅用于开发的 SQLite:
group :development do
gem 'sqlite3'
end
然后尝试运行bundle install
。
【讨论】:
你可能是对的,但即使将 sqlite3 添加到我的开发组,rails 也坚持安装 pg gem...# Use sqlite3 as the database for Active Record gem 'sqlite3', group: :development
并且也这样做了:group :development do # Access an IRB console on exception pages or by using <%= console %> in views gem 'web-console', '~> 2.0' gem 'sqlite3' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' end group :production do gem 'pg' gem 'rails_12factor' end
没有成功...
如果您正在尝试开发 12 要素应用程序,则不建议这样做,因为它会使开发和生产环境不同。 12factor.net/dev-prod-parity
@NateSHolland 是对的,你永远不应该为 prod 和 dev 使用不同的数据库引擎,这是个坏主意。以上是关于gem install pg 在 Mac El Capitan 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
运行 gem install pg -v '0.15.1' 时出错
gem install pg 在 OSX Lion 上不起作用
无法使用 Mavericks 在我的 Mac 上安装 PG gem