简体   繁体   中英

PostgreSQL gem pg was unable to install

My DB is PostgreSQL.I am on CENTOS.... While installing the pg gem I received the following error. I reinstalled to clear my YAML problem also, which didn't work, but it is just a warning. My main problem is the installation of the pg gem:

[root@vdimc04 ~]# gem install pg
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

        /usr/local/bin/ruby extconf.rb
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
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/local/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
    --without-pg-config
    --with-pg_config
    --without-pg_config


Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/pg-0.14.1 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/pg-0.14.1/ext/gem_make.out

I also tried with the following command, but to no use:

 gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config

I got the same error on Centos. By googling I found two commands to use:

  1. yum install postgresql-libs -- It gave me message saying, its already installed.
  2. yum install postgresql-devel -- It solved my error related to pg_config for installing the 'pg' .gem.

Hope it helps :)

apos wrote: on Ubuntu 14.04 install:

  1. apt-get install postgresql-server-dev-9.3 libpq-dev

Here's my recipe for getting PostgreSQL, RVM, Ruby, Rails all up and running on CentOS

PostgreSQL

First, follow the instructions on http://wiki.postgresql.org/wiki/YUM_Installation to get PostgreSQL installed:

sudo vi /etc/yum.repos.d/CentOS-Base.repo

[base]
exclude=postgresql*

[updates]
exclude=postgresql*

Get the latest PGDG RPM file (for your platform/architecture), for example:

curl -O http://yum.postgresql.org/9.2/redhat/rhel-latest-x86_64/pgdg-redhat92-9.2-7.noarch.rpm

Then

sudo rpm -ivh pgdg-redhat92-9.2-7.noarch.rpm
sudo yum install -y postgresql92-server postgresql92-devel

Initialize the database:

sudo service postgresql-9.2 initdb

Configure /var/lib/pgsql/9.2/data/postgresql.conf and /var/lib/pgsql/9.2/data/pg_hba.conf as needed.

Start PostgreSQL server:

sudo service postgresql-9.2 start

RVM

sudo yum -y groupinstall "Development Tools"
sudo yum -y install zlib zlib-devel sqlite-devel httpd curl-devel httpd-devel apr-devel apr-util-devel mlocate man libxml2-devel libxslt-devel libffi-devel readline-devel

Note, NOT as root:

\curl -L get.rvm.io | sudo bash -s stable

Logout and back on. Afterwards, which rvm should reply with /usr/local/rvm/bin/rvm and type rvm|head -1 should say rvm is a function .

Ruby + Rails

rvm install 1.9.3 --with-openssl-dir=/usr
rvm use 1.9.3 --default
gem install rake
gem install rails

PostgreSQL gem

gem install pg -- --with-pg-config=/usr/pgsql-9.2/bin/pg_config

The --with-pg-config is somehow needed with my latest installation of CentOS, otherwise, gem install pg can't find pg_config . YMMV, but if you follow all the above to the letter (which I've done enough times in the past few months) just let me know if anything trips you up.

try installing libpq package by doing:

sudo apt-get install libpq-dev

That package helps with pg gem and you should be fine after that :)

Try This, the answer is not mine but it worked for me. Remember to point to where your Postgres.app application is:

bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

Then do

bundle update
bundle install
$ sudo apt-get install libpq-dev
$ sudo apt-get install libdbd-pg-ruby1.8

then:

$ sudo apt-get install pg  

for CentOS please read the below link..

http://wiki.postgresql.org/wiki/YUM_Installation

To install pg in centOS

run this commands

bundle config build.pg 

gem install pg -v '0.12.0'

Try to install postgresql server and corresponding libraries. Then install the pg gem. Then it will work for u

My problem is before pg gem was already installed.. but it is not loading to bundle.. Now the solution is: when we are declaring a new application like 'rails new Demo' we have to include

'--database=postgresql'. so now the total command is: 'rails new Demo --database=postgresql'

Then the pg gem file will gets to bundle..

In bundle only one gem will gets store . either pg gem or sqlite3 gem..

Now edit the database.yml file accordingly.. thats it

I got the same problem and I tried to install all dependencies, but all is useless. In the end, I had a try to use PostgreSQL9.3, not PostgreSQL9.4, and everything is fine.

Using AWS Cloud 9 Linux:

sudo yum install postgresql-libs

then:

sudo yum install postgresql-devel

then:

gem update --system

if needed, then:

gem install bundler (Bundler 2.0)

then:

bundle install

First install

sudo apt-get install postgresql postgresql-server-dev-9.1

Next install

sudo apt-get install libpq-dev

Then install gem install pg

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM