安装pg(0.17.1)时发生错误,Bundler无法继续

时间:2013-12-24 02:28:52

标签: ruby-on-rails macos postgresql ruby-on-rails-4

我刚刚安装了Rails 4.0.2,在创建新应用时,在捆绑阶段我得到了:

Installing pg (0.17.1) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/Dee/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

我该如何解决这个问题?

16 个答案:

答案 0 :(得分:156)

此处报告了某种错误Installing PG gem on OS X - failure to build native extension

要在Ubuntu上安装依赖项,请尝试以下方法:

sudo apt-get install libpq-dev

和这个

gem install pg

答案 1 :(得分:134)

我在Mac上运行小牛队。我的解决方案是安装Postgres

然后在终端安装中使用带有配置的自制程序:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

注意:此答案已经过编辑,可以使用Postgres应用的发货版本中当前包含的latest符号链接。

以前的版本建议:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

答案 2 :(得分:18)

app root:

  1. brew update
  2. brew install postgres
  3. gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. 捆绑安装
  5. ln -sfv /usr/local/opt/postgresql/*.plist~/ Library / LaunchAgents
  6. launchctl load~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. rake db:create:all
  9. rake db:migrate
  10. rails s
  11. 注意:如果需要,请替换步骤3中的版本号。

答案 3 :(得分:11)

以前使用旧版

的答案

我在mac OSX Mavericks下安装,安装了www.postgresapp.com的postgres应用程序(版本9.2.2.0)。根本问题是,自从postgres通过应用程序安装后,配置文件驻留在一个位置,这个位置在没有postgressapp的情况下安装时不是默认位置。所以我们需要告诉gem在哪里找到这个文件:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

希望有所帮助

答案 4 :(得分:5)

如果gem install pg失败,请尝试以下命令:

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

...来自PostgreSQL.app Documentation

答案 5 :(得分:4)

看起来你没有安装PostgreSQL。 pg gem需要PostgreSQL中的一些头文件来编译本机扩展。

答案 6 :(得分:3)

我必须结合一切并使用

{{1}}

答案 7 :(得分:2)

如果你只在开发中使用Postgres以外的东西,只在生产中使用Postgres,你可以像往常一样将pg gem添加到你的gem文件中......

group :production do
  gem 'pg',             '0.17.1'
end

然后使用bundle install --without production

答案 8 :(得分:2)

对于CentOS用户:

sudo yum install postgresql-devel

gem install pg

答案 9 :(得分:0)

安装Postgres后,我必须运行以下命令

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

此捆绑安装后效果很好!

希望有所帮助

答案 10 :(得分:0)

我设法克服错误的方式是:

  • cd到app文件夹,然后在本地设置ruby版本。我正在使用ruby 2.1.2。
  

rbenv local 2.1.2

  • 而不是仅运行bundle install,在vendor / bundle
  • 中安装gem
  

bundle install --path vendor / bundle

这对我有用。

答案 11 :(得分:0)

我需要使用sudo

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

答案 12 :(得分:0)

我在使用Amazon时遇到问题,无法使用apt-get。 对于我的工作:

    sudo yum install postgresql-devel

然后:

    bundle install

然后重试:

    rails serve

答案 13 :(得分:0)

如果是通过Homebrew安装的; gem install pg -- --with-pg-config=/usr/local/bin/pg_config。适用于Ruby 2.4.6和pg 0.20.0。

答案 14 :(得分:0)

我刚刚设置了一个新的Macbook Pro,它是用Catalina预建的。

对我有用的东西

  1. 从此处安装Postgres:https://postgresapp.com/
  2. export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"添加到.zshenv中,因为Z shell现在是默认终端。

答案 15 :(得分:-2)

它对我有用

rvm list gemsets
rvm use ruby-2.4.1
bundle

error[![resolved with rvm use ruby] 2