rails install pg - Can't find the 'libpq-fe.h header

89,059

Solution 1

Just make this

$ sudo apt-get install libpq-dev

Solution 2

This is answered in Can't find the 'libpq-fe.h header when trying to install pg gem

Depending on your environment:

  • Mac: brew install postgresql
  • Ubuntu: sudo apt-get install libpq-dev
  • RHEL: yum install postgresql-devel

Then run gem install pg again

Solution 3

Try this:

  1. brew install postgresql
  2. gem install pg
  3. bundle install

Solution 4

On Fedora/RHEL systems this did the trick:

sudo yum install libpqxx-devel

Solution 5

  • SO: Ubuntu
  • Language Programming: C

$ sudo apt-get install libpq-dev

In my case I was putting the directory path wrong. So:

From: gcc -o lib_version lib_version.c -I/usr/include/postgresql -lpq -std=c99

To: gcc -o lib_version lib_version.c -I /usr/include/postgresql -lpq -std=c99

GL

Share:
89,059

Related videos on Youtube

Arthur Yakovlev
Author by

Arthur Yakovlev

I want create browser online game with 1 000 000 players!

Updated on July 13, 2021

Comments

  • Arthur Yakovlev
    Arthur Yakovlev almost 3 years
    $ sudo bundle install
    

    Result

    Fetching gem metadata from https://rubygems.org/...........
    Fetching gem metadata from https://rubygems.org/..
    Using rake (0.9.2.2) 
    Using i18n (0.6.1) 
    Using multi_json (1.3.6) 
    Using activesupport (3.2.8) 
    Using builder (3.0.4) 
    Using activemodel (3.2.8) 
    Using erubis (2.7.0) 
    Using journey (1.0.4) 
    Using rack (1.4.1) 
    Using rack-cache (1.2) 
    Using rack-test (0.6.2) 
    Using hike (1.2.1) 
    Using tilt (1.3.3) 
    Using sprockets (2.1.3) 
    Using actionpack (3.2.8) 
    Using mime-types (1.19) 
    Using polyglot (0.3.3) 
    Using treetop (1.4.11) 
    Using mail (2.4.4) 
    Using actionmailer (3.2.8) 
    Using arel (3.0.2) 
    Using tzinfo (0.3.33) 
    Using activerecord (3.2.8) 
    Using activeresource (3.2.8) 
    Using bundler (1.2.1) 
    Using coffee-script-source (1.4.0) 
    Using execjs (1.4.0) 
    Using coffee-script (2.2.0) 
    Using rack-ssl (1.3.2) 
    Using json (1.7.5) 
    Using rdoc (3.12) 
    Using thor (0.16.0) 
    Using railties (3.2.8) 
    Using coffee-rails (3.2.2) 
    Using jquery-rails (2.1.3) 
    Installing pg (0.14.1) with native extensions 
    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
    
            /usr/bin/ruby1.8 extconf.rb 
    checking for pg_config... yes
    Using config values from /usr/bin/pg_config
    You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
    You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
    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.
    
    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=/usr/bin/ruby1.8
        --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
        --without-pg-config
        --with-pg_config
        --without-pg_config
    
    Gem files will remain installed in /var/lib/gems/1.8/gems/pg-0.14.1 for inspection.
    Results logged to /var/lib/gems/1.8/gems/pg-0.14.1/ext/gem_make.out
    An error occurred while installing pg (0.14.1), and Bundler cannot continue.
    Make sure that `gem install pg -v '0.14.1'` succeeds before bundling.
    

    I am make $ gem install pg -v '0.14.1' But this is not help

    My Gemfile

    source 'https://rubygems.org'
    
    #gem 'rails', '3.0.9'
    
    #gem 'sqlite3', '1.3.6', :group => :development
    
    
    gem 'rails', '3.2.8'
    
    # Bundle edge Rails instead:
    # gem 'rails', :git => 'git://github.com/rails/rails.git'
    
    
    gem 'sqlite3'
    gem 'pg'
    gem 'taps'
    
    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'
    
    
    #group :production do
      #gem 'pg'
    #end
    #group :development do
      #gem 'sqlite3'
    #end
    

    gem_make.out

    /usr/bin/ruby1.8 extconf.rb 
    checking for pg_config... yes
    Using config values from /usr/bin/pg_config
    You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
    You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
    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.
    
    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=/usr/bin/ruby1.8
        --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
        --without-pg-config
        --with-pg_config
        --without-pg_config
    

    mkmf.log

    find_executable: checking for pg_config... -------------------- yes
    
    --------------------
    
    find_header: checking for libpq-fe.h... -------------------- no
    
    "gcc -E -I. -I/usr/lib/ruby/1.8/i686-linux -I. -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I -fno-strict-aliasing -g -g -O2  -fPIC    conftest.c -o conftest.i"
    conftest.c:1:22: fatal error: libpq-fe.h: No such file or directory
    compilation terminated.
    checked program was:
    /* begin */
    1: #include <libpq-fe.h>
    /* end */
    
    --------------------
    

    Help me please. Thank you.

    Sorry for this text. Your post does not have much context to explain the code sections; please explain your scenario more clearly.

  • Michael Lafayette
    Michael Lafayette over 8 years
    I tried to do that on Ubuntu 14.04 but it gave me this: " libpq-dev : Depends: libpq5 (= 9.3.4-1) but 9.3.10-0ubuntu0.14.04 is to be installed "
  • Michael Lafayette
    Michael Lafayette over 8 years
    But then when I try to install libpq5, it says "libpq5 is already the newest version."
  • Michael Lafayette
    Michael Lafayette over 8 years
    PostgreSQL version is: psql --version: psql (PostgreSQL) 9.3.10. PostgreSQL 9.3.10 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit
  • Michael Lafayette
    Michael Lafayette over 8 years
    I tried to do that on Ubuntu 14.04 but it gave me this: " libpq-dev : Depends: libpq5 (= 9.3.4-1) but 9.3.10-0ubuntu0.14.04 is to be installed "
  • Michael Lafayette
    Michael Lafayette over 8 years
    But then when I try to install libpq5, it says "libpq5 is already the newest version." Same for PostgreSQL
  • Michael Lafayette
    Michael Lafayette over 8 years
    PostgreSQL version is: psql --version: psql (PostgreSQL) 9.3.10. PostgreSQL 9.3.10 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit
  • Phil
    Phil over 8 years
    Hey Michael, I'm not sure I can answer your question because I'm not familiar with Ubuntu, but you may want to check out Michael Durrant's answer here: stackoverflow.com/a/8887801/2484523
  • itsji10dra
    itsji10dra almost 8 years
    Why it says : No package libpqxx-devel available.
  • erichfw
    erichfw over 7 years
    yum list libpq* followed by yum install libpqxx-devel.x86_64
  • Ben Johnson
    Ben Johnson over 7 years
    Brilliant! The application I was compiling also needed the path to libpq-fe.h to be specified explicitly, with --with-cflags=-I/usr/include/postgresql, in case anyone else encounters the same.
  • IronMan007
    IronMan007 almost 7 years
    For those of you wondering what libpq-dev means: It contains a minimal set of PostgreSQL_ binaries and headers requried for building 3rd-party applications for PostgreSQL_.
  • Marcus
    Marcus about 6 years
    Worked on Red Hat EL7. I was getting the header file missing during a Perl install of DBD::Pg.
  • ramesh.mimit
    ramesh.mimit about 6 years
    for Amazon linux, <code>yum install libpqxx-devel</code> fixes the issue
  • DaveGauer
    DaveGauer almost 6 years
    Ah! Excellent. The specific version (9.6) was my roadblock on AMI as well.
  • David Gay
    David Gay almost 6 years
    This is the answer for a CentOS droplet on Digital Ocean. postgresql-devel needs to be installed.
  • lowly_junior_sysadmin
    lowly_junior_sysadmin over 5 years
    On CentOS6 'sudo yum install libpq*' installed the correct dependencies for me to gem install pg successfully.
  • Scott Schupbach
    Scott Schupbach over 4 years
    This was what ended up working for me, or at least the Mac version of it, which is brew install libpq. I then also had to brew link --force libpq to get the gem install pg to finish successfully.
  • HoangLM
    HoangLM over 3 years
    You saved my day! Finding the correct devel version really help!
  • kHarshit
    kHarshit over 3 years
    In Ubuntu, in C++, you may want to use #include <postgresql/libpq-fe.h> instead of #include <libpq-fe.h>.
  • bplittle
    bplittle about 3 years
    For those of you experiencing this but also see "libpq5 is already the newest version." when you try to install, try sudo apt-get remove libpq-dev and then installing it again. Worked for me.
  • Masroor
    Masroor over 2 years
    how do we find the path to pg_config, doing where pg_config returns pg_conf not found.
  • Josh Mathews
    Josh Mathews over 2 years
    Note: If you installed the postgres app directly, you should instead run brew install libpq