3

I've installed the pg gem as shown, but...

Building native extensions.  This could take a while...
    Successfully installed pg-0.11.0
    ERROR:  Could not find a valid gem '—' (>= 0) in any repository
    ERROR:  Could not find a valid gem '–with-pg-config=/usr/local/pg/bin/pg_config' (>= 0) in any repository
    1 gem installed
    Installing ri documentation for pg-0.11.0...
    Installing RDoc documentation for pg-0.11.0...

Something strange happens when I bundle install and it won't completely install the pg gem:

Fetching source index for http://rubygems.org/
Using rake (0.9.2) 
Using abstract (1.0.0) 
Using activesupport (3.0.10) 
Using builder (2.1.2) 
Using i18n (0.5.0) 
Using activemodel (3.0.10) 
Using erubis (2.6.6) 
Using rack (1.2.3) 
Using rack-mount (0.6.14) 
Using rack-test (0.5.7) 
Using tzinfo (0.3.29) 
Using actionpack (3.0.10) 
Using mime-types (1.16) 
Using polyglot (0.3.2) 
Using treetop (1.4.10) 
Using mail (2.2.19) 
Using actionmailer (3.0.10) 
Using arel (2.0.10) 
Using activerecord (3.0.10) 
Using activeresource (3.0.10) 
Using annotate (2.4.0) 
Using bundler (1.0.18) 
Using diff-lcs (1.1.2) 
Using factory_girl (1.3.3) 
Using rdoc (3.9.3) 
Using thor (0.14.6) 
Using railties (3.0.10) 
Using rails (3.0.10) 
Using factory_girl_rails (1.0) 
Using faker (0.3.1) 
Using gravatar_image_tag (1.0.0.pre2) 
Using nokogiri (1.5.0) 
Installing pg (0.11.0) with native extensions /Users/******/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

Then I get the lines that tell me I may lack necessary libraries or headers:

   *** 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.
Provided configuration options:
    --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
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/TonyNg/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
    --with-pg
    --without-pg
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/lib
    --with-pg-config
extconf.rb:24:in ``': No such file or directory - /users/****/

Here is my gem file:

  source 'http://rubygems.org'

gem 'rails', '3.0.10'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'pg'
gem 'gravatar_image_tag', '1.0.0.pre2'
gem 'will_paginate', '3.0.pre2'



group :development do
  gem 'rspec-rails', '2.6.1'
  gem 'annotate', '2.4.0'
  gem 'faker', '0.3.1'
end

group :test do
  gem 'rspec-rails', '2.6.1'
  gem 'webrat', '0.7.1'
  gem 'spork', '0.9.0.rc8'
  gem 'factory_girl_rails', '1.0'
end

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
# gem 'ruby-debug'
# gem 'ruby-debug19', :require => 'ruby-debug'

# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'

# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
# group :development, :test do
#   gem 'webrat'
# end

How do I solve this issue? Thanks in advance.

EDIT Answer:The trick was to install the pg gem under the correct pathway to pg_config whereas before it wasn't fully installed. I ran 'gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config ' for the path I had put down under my last comment. I just had to locate my pg_config file and run gem install under that.

Tony
  • 981
  • 5
  • 16
  • 30
  • Do you have PostgreSQL and its libraries installed? What does the `mkmf.log` have to say? – mu is too short Aug 29 '11 at 15:01
  • @mu is too short, I've searched my mac and could not find the 'mkmf.log' for this specific event. I must not have installed the library because I am getting: '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'. I do have PostgreSQL84 installed. But when I bundle install the libraries, those were the errors I was getting. – Tony Aug 29 '11 at 22:07
  • If you are on Lion you need to specify the architecture, Google lion pg gem x86_64 archflag env – unmounted Aug 29 '11 at 22:54
  • @mu is too short. Yes I do, it's under /opt/local/lib/postgresql84/bin/pg_config and I just opened it. I think you're talking about the exec file? I also have a pg_config folder and .h file. I'm not on Lion but I have tried 'sudo env ARCHFLAGS="-arch x86_64" gem install pg' and that didn't work either. – Tony Aug 29 '11 at 23:13
  • @mu is too short. I GOT IT! Sorry for the bother and that I am new to this. The trick was to install the pg gem under the **correct** pathway to pg_config whereas before it wasn't fully installed. I ran 'gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config ' for the path I had put down under my last comment. Thanks a bunch! – Tony Aug 30 '11 at 00:08

6 Answers6

19

You need to install libpq-dev before

Sergey Toy
  • 580
  • 4
  • 17
5

in ubuntu 18.04, need to ran sudo apt install libpq-dev

Yuri Toledo
  • 53
  • 1
  • 4
5

The trick was to install the pg gem under the correct pathway to pg_config whereas before it wasn't fully installed. I ran gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config after locating the pg_config exec file. I just had to locate my pg_config file and run gem install under that pathway.

Tony
  • 981
  • 5
  • 16
  • 30
3

For Windows and as-of version 0.13.0 of the pg gem, you should be able to install it using something like the following:

subst X: "C:\Program Files\PostgreSQL\9.0"
gem install pg -- --with-pg=X:
subst X: /D

Then you can successfully run bundle install and see the following line in the output:

Using pg (0.13.0)

instead of the errors.

[This is the same answer as this answer to the related question Can't install pg gem on Windows.]

Community
  • 1
  • 1
Kenny Evitt
  • 9,291
  • 5
  • 65
  • 93
2

On ubuntu 18.04 run the following command

sudo apt update
sudo apt install libpq-dev
Hamfri
  • 1,979
  • 24
  • 28
0

For iOS :

brew install libpq

Reference: https://formulae.brew.sh/formula/libpq