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

前端 未结 30 1431
深忆病人
深忆病人 2020-11-22 07:47

I am using the Ruby on Rails 3.1 pre version. I like to use PostgreSQL, but the problem is installing the pg gem. It gives me the following error:



        
相关标签:
30条回答
  • 2020-11-22 08:23

    I could solve this in another way. I didn't find the library on my system. Thus I installed it using an app from PostgreSQL main website. In my case (OS X) I found the file under /Library/PostgreSQL/9.1/include/ once the installation was over. You may also have the file somewhere else depending on your system if you already have PostgreSQL installed.

    Thanks to this link on how to add an additional path for gem installation, I could point the gem to the lib with this command:

    export CONFIGURE_ARGS="with-pg-include=/Library/PostgreSQL/9.1/include/"
    gem install pg
    

    After that, it works, because it now knows where to find the missing library. Just replace the path with the right location for your libpq-fe.h

    0 讨论(0)
  • 2020-11-22 08:24

    Can't find the libpq-fe.h header

    i had success on CentOS 7.0.1406 running the following commands:

    ~ % psql --version # => psql (PostgreSQL) 9.4.1
    yum install libpqxx-devel
    gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config
    

    Alternatively, you can configure bundler to always install pg with these options (helpful for running bundler in deploy environments),

    • bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
    0 讨论(0)
  • 2020-11-22 08:24

    I just had this on OSX running brew and postgres@9.4.

    My fix was this:

    CONFIGURE_ARGS="with-pg-include=/usr/local/opt/postgresql@9.4/include/" bundle install
    
    0 讨论(0)
  • 2020-11-22 08:25

    It looks like in Ubuntu that header is part of the libpq-dev package (at least in the following Ubuntu versions: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 (Trusty Tahr) and 18.04 (Bionic Beaver)):

    ...
    /usr/include/postgresql/libpq-fe.h
    ...
    

    So try installing libpq-dev or its equivalent for your OS:

    • For Ubuntu/Debian systems: sudo apt-get install libpq-dev
    • On Red Hat Linux (RHEL) systems: yum install postgresql-devel
    • For Mac Homebrew: brew install postgresql
    • For Mac MacPorts PostgreSQL: gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
    • For OpenSuse: zypper in postgresql-devel
    • For ArchLinux: pacman -S postgresql-libs
    0 讨论(0)
  • 2020-11-22 08:26

    On a Mac, I solved it using this code:

    gem install pg -v '0.18.4' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
    
    0 讨论(0)
  • 2020-11-22 08:26

    I had this issue with Postgresql 9.6. I was able to fix it by doing:

    brew upgrade postgresql@9.6
    brew link postgresql@9.6 --force
    gem install pg
    
    0 讨论(0)
提交回复
热议问题