Why isn't bundle install allowing for the pg gem to fully install?

13,749

Solution 1

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.

Solution 2

You need to install libpq-dev before

Solution 3

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

Solution 4

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.]

Solution 5

On ubuntu 18.04 run the following command

sudo apt update
sudo apt install libpq-dev
Share:
13,749
Tony
Author by

Tony

@tonynggg

Updated on June 05, 2022

Comments

  • Tony
    Tony almost 2 years

    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.

  • Chris
    Chris almost 11 years
    A good way of installing this on OSX is to download PG from the enterprisedb site.
  • Admin
    Admin over 5 years
    awesome @FiftiN
  • Kenny Evitt
    Kenny Evitt over 2 years
    iOS? I don't think Homebrew is available on iOS nor is a shell from which it could be run. Did you mean macOS?