An error occurred while installing pg (0.17.1), and Bundler cannot continue

Ruby on-RailsMacosPostgresqlRuby on-Rails-4

Ruby on-Rails Problem Overview


I just installed Rails 4.0.2 and when creating a new app, in the bundle stage I get:

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.

How do I fix this?

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

Some kind of error resported here https://stackoverflow.com/questions/19262312/installing-pg-gem-failure-to-build-native-extension

To install dependencies on Ubuntu try this:

sudo apt-get install libpq-dev

and this

gem install pg

Solution 2 - Ruby on-Rails

I'm on a Mac running Mavericks. My solution was to install Postgres.

And then in terminal install using homebrew with the configuration:

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

Note: This answer has been edited to use the latest symlink that is currently included in shipping versions of the Postgres app.

Previous versions suggested:

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

Solution 3 - Ruby on-Rails

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. bundle install
  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

NOTE: replace the version number in step 3 if needed.

Solution 4 - Ruby on-Rails

Previously working answer with older version

I installed under mac OSX Mavericks, having the postgres app (Version 9.2.2.0 ) from www.postgresapp.com installed. The underlying problem was simpy that the since postgres was installed via the app, the configuration file resides on a location which is not the default one when installing it without postgressapp. so we need to tell gem where to find this file by:

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

Hope it helps

Solution 5 - Ruby on-Rails

If gem install pg fails, try the following command:

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

... from the PostgreSQL.app Documentation

Solution 6 - Ruby on-Rails

Looks like you do not have PostgreSQL installed. The pg gem requires some headers from PostgreSQL to compile native extension.

Solution 7 - Ruby on-Rails

I had to combine everything and use

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

Solution 8 - Ruby on-Rails

If you are using something other than Postgres in development and Postgres in production only, you can add the pg gem to your gemfile like so...

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

Then use bundle install --without production

Solution 9 - Ruby on-Rails

For CentOS users:

sudo yum install postgresql-devel

and

gem install pg

Solution 10 - Ruby on-Rails

I have just set up a new Macbook Pro which was prebuilt with Catalina.

What worked for me:

  1. Install the Postgres from here: https://postgresapp.com/
  2. Add export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"to your .zshenv, since Z shell is now the default terminal.

Solution 11 - Ruby on-Rails

After installing Postgres I had to run the following command

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

After this bundle install works great!

Hope it helps

Solution 12 - Ruby on-Rails

The way I managed to get past that error was:

  • cd to app folder and then set the ruby version locally. I'm using ruby 2.1.2.

>rbenv local 2.1.2

  • instead of just running bundle install, install the gems in vendor/bundle

>bundle install --path vendor/bundle

This did it for me.

Solution 13 - Ruby on-Rails

I needed to use sudo

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

Solution 14 - Ruby on-Rails

I was having a problem with Amazon and couldn't use apt-get. For my worked:

    sudo yum install postgresql-devel

then:

    bundle install

and try again:

    rails serve

Solution 15 - Ruby on-Rails

If you installed through Homebrew; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Works with Ruby 2.4.6 and pg 0.20.0.

Solution 16 - Ruby on-Rails

It works for me

rvm list gemsets
rvm use ruby-2.4.1
bundle

[errorresolved with rvm use ruby

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDeekorView Question on Stackoverflow
Solution 1 - Ruby on-RailsTalgat MedetbekovView Answer on Stackoverflow
Solution 2 - Ruby on-RailsBob O'BrienView Answer on Stackoverflow
Solution 3 - Ruby on-RailskniceView Answer on Stackoverflow
Solution 4 - Ruby on-RailsRobertibirisView Answer on Stackoverflow
Solution 5 - Ruby on-RailsVinceView Answer on Stackoverflow
Solution 6 - Ruby on-RailstungdView Answer on Stackoverflow
Solution 7 - Ruby on-RailsMark WangView Answer on Stackoverflow
Solution 8 - Ruby on-Railsj8dView Answer on Stackoverflow
Solution 9 - Ruby on-RailswebsterView Answer on Stackoverflow
Solution 10 - Ruby on-RailsHenrik HolmView Answer on Stackoverflow
Solution 11 - Ruby on-RailspochocostaView Answer on Stackoverflow
Solution 12 - Ruby on-RailsBogdan NechitaView Answer on Stackoverflow
Solution 13 - Ruby on-RailsgypsyDevView Answer on Stackoverflow
Solution 14 - Ruby on-RailsMaurici AbadView Answer on Stackoverflow
Solution 15 - Ruby on-RailszykadelicView Answer on Stackoverflow
Solution 16 - Ruby on-RailsDevMasterAryanView Answer on Stackoverflow