Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension

16,491

Solution 1

On Debian systems you have to install libpq-dev package in order to use postgres on a distant server with 'pg' gem.

Solution 2

It looks like you don't have postgresql installed. Try using postgres app since you are using mac.

Share:
16,491
Admin
Author by

Admin

Updated on June 04, 2022

Comments

  • Admin
    Admin almost 2 years

    To provide some background - I've just downloaded a Git Repo from GitHub, for a friends app and I am attempting to launch it from my Mac ('rails s'). However, I am being hit with the following error // see below // when running 'bundle install'. It seems as if the 'pg' (postgreSQL) gem is having some sort of obscure installation error. Any help would be appreciated!

    I have tried this command to no avail:

    $gem install pg -- --with-pg-config= /usr/bin/pg_config/

    And here is the error log:

    Installing pg (0.15.0) with native extensions 
    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
    
            /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb 
    checking for pg_config... yes
    Using config values from /usr/bin/pg_config
    checking for libpq-fe.h... yes
    checking for libpq/libpq-fs.h... yes
    checking for pg_config_manual.h... yes
    checking for PQconnectdb() in -lpq... yes
    checking for PQconnectionUsedPassword()... yes
    checking for PQisthreadsafe()... yes
    checking for PQprepare()... yes
    checking for PQexecParams()... yes
    checking for PQescapeString()... yes
    checking for PQescapeStringConn()... yes
    checking for PQescapeLiteral()... yes
    checking for PQescapeIdentifier()... yes
    checking for PQgetCancel()... yes
    checking for lo_create()... yes
    checking for pg_encoding_to_char()... yes
    checking for pg_char_to_encoding()... yes
    checking for PQsetClientEncoding()... yes
    checking for PQlibVersion()... yes
    checking for PQping()... yes
    checking for PQsetSingleRowMode()... no
    checking for rb_encdb_alias()... yes
    checking for rb_enc_alias()... no
    checking for rb_thread_call_without_gvl()... yes
    checking for rb_thread_call_with_gvl()... yes
    checking for rb_thread_fd_select()... yes
    checking for rb_w32_wrap_io_handle()... no
    checking for PGRES_COPY_BOTH in libpq-fe.h... no
    checking for PGRES_SINGLE_TUPLE in libpq-fe.h... no
    checking for struct pgNotify.extra in libpq-fe.h... yes
    checking for unistd.h... yes
    checking for ruby/st.h... yes
    creating extconf.h
    creating Makefile
    
    make
    compiling gvl_wrappers.c
    compiling pg.c
    pg.c: In function ‘Init_pg_ext’:
    pg.c:384: error: ‘PQPING_OK’ undeclared (first use in this function)
    pg.c:384: error: (Each undeclared identifier is reported only once
    pg.c:384: error: for each function it appears in.)
    pg.c:386: error: ‘PQPING_REJECT’ undeclared (first use in this function)
    pg.c:388: error: ‘PQPING_NO_RESPONSE’ undeclared (first use in this function)
    pg.c:390: error: ‘PQPING_NO_ATTEMPT’ undeclared (first use in this function)
    make: *** [pg.o] Error 1
    
    
    Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p194/gems/pg-0.15.0 for inspection.
    Results logged to /usr/local/rvm/gems/ruby-1.9.3-p194/gems/pg-0.15.0/ext/gem_make.out
    An error occured while installing pg (0.15.0), and Bundler cannot continue.
    Make sure that `gem install pg -v '0.15.0'` succeeds before bundling.
    

    GemFile

    source 'https://rubygems.org'
    
    gem 'rails', '3.2.11'
    
    # Bundle edge Rails instead:
    # gem 'rails', :git => 'git://github.com/rails/rails.git'
    
    gem 'pg'
    gem 'json'
    
    # Gems used only for assets and not required
    # in production environments by default.
    group :assets do
      gem 'sass-rails',   '~> 3.2.3'
      gem 'coffee-rails', '~> 3.2.1'
    
      # See https://github.com/sstephenson/execjs#readme for more supported runtimes
      # gem 'therubyracer', :platforms => :ruby
    
      gem 'uglifier', '>= 1.0.3'
    end
    
    gem 'jquery-rails'
    
    gem 'devise'
    
    gem 'rails-backbone'
    
    gem 'nokogiri'
    # To use ActiveModel has_secure_password
    # gem 'bcrypt-ruby', '~> 3.0.0'
    
    # To use Jbuilder templates for JSON
    # gem 'jbuilder'
    
    # Use unicorn as the app server
    # gem 'unicorn'
    
    # Deploy with Capistrano
    # gem 'capistrano'
    
    # To use debugger
    # gem 'ruby-debug'