Installing Pg gem for PostGreSQL 8.4


S

Saeed Bhuta

Hi All,

I want to save data from a ruby script into a table in a PostGreSQL 8.4
database.

After looking into PostGreSQL connectivity in Ruby, I have come accross
the 'pg' gem.

I attempted to install the gem with the command: 'sudo gem install pg'
but got the following error:
sudo gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for main() in -lpq... no
checking for main() in -llibpq... no
checking for main() in -lms/libpq... no
*** 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-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib
Could not find PostgreSQL build environment (libraries & headers):
Makefile not created


Gem files will remain installed in /var/lib/gems/1.8/gems/pg-0.8.0 for
inspection.
Results logged to /var/lib/gems/1.8/gems/pg-0.8.0/ext/gem_make.out

Would appreciate it if someone could point me in the right direction.

Saeed.
 
Ad

Advertisements

S

Shashank Tiwari

[Note: parts of this message were removed to make it a legal post.]

Are you installing this on a mac, windows or a linux environment? You may
need to make sure your C/C++ compiler is configured on the platform for the
native extensions to compile and install.

Thanks, Shashank
 
S

Saeed Bhuta

Shashank said:
Are you installing this on a mac, windows or a linux environment? You
may
need to make sure your C/C++ compiler is configured on the platform for
the
native extensions to compile and install.

Thanks, Shashank

Hi Shashank,

Thanks for replying. I'm using Linux Ubuntu Karmic Koala.

Saeed.
 
S

Saeed Bhuta

you need to install the postgresql development packages

I think I've done this already. Nonetheless, I'm going to try and
install it again. Do you know the name of the development packages?

Thanks,

Saeed.
 
S

Saeed Bhuta

I just installed the 'libecpg-dev' package and am now getting the
following error when trying to install the pg gem:

"sudo gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for pg_config... yes
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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-config
--without-pg-config
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--enable-static-build
--disable-static-build
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib


Gem files will remain installed in /var/lib/gems/1.8/gems/pg-0.9.0 for
inspection.
Results logged to /var/lib/gems/1.8/gems/pg-0.9.0/ext/gem_make.out"
 
Ad

Advertisements

R

Reid Thompson

Run this...
$ dpkg --get-selections
and paste the results in a pastebin.

At this point, the gems is stating that it cannot find libpq ( the
postgresql C client library ). Do you have the postgresql client
packages installed?

reid
 
R

Reid Thompson

=20
I just installed the 'libecpg-dev' package and am now getting the=20
following error when trying to install the pg gem:

I believe the libecpg-dev package would only provide the required
packages for developing embedded sql programs.

Open synaptic, scroll down to the postgresql section, and look at the
available packages. Make sure you have appropriate server and client
packages installed as well as their associated dev packages.
 
S

Saeed Bhuta

Lars said:
Looks like you're missing the libpq5 and libpq-dev packages.

When I try to install them using the command:

sudo apt-get libpq5 libpq-dev

I get the message;

Reading package lists... Done
Building dependency tree
Reading state information... Done
libpq5 is already the newest version.
libpq-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

:S
 
Ad

Advertisements

S

Saeed Bhuta

Reid said:
what do the following commands return

$pg_config --libdir


$pg_config --bindir

pg_config --libdir
/usr/lib

pg_config --bindir
/usr/lib/postgresql/8.4/bin
 
Ad

Advertisements

S

Saeed Bhuta

Reid said:
what does
$ ls -lrt /usr/lib/*libpq*

return


ls -lrt /usr/lib/*libpq*
-rw-r--r-- 1 root root 217474 2009-09-09 17:51 /usr/lib/libpq.a
-rw-r--r-- 1 root root 151036 2009-09-09 17:51 /usr/lib/libpq.so.5.2
lrwxrwxrwx 1 root root 12 2009-11-30 12:12 /usr/lib/libpq.so.5 ->
libpq.so.5.2
lrwxrwxrwx 1 root root 12 2010-03-02 10:12 /usr/lib/libpq.so ->
libpq.so.5.2
 
R

Reid Thompson

=20
=20
ls -lrt /usr/lib/*libpq*
-rw-r--r-- 1 root root 217474 2009-09-09 17:51 /usr/lib/libpq.a
-rw-r--r-- 1 root root 151036 2009-09-09 17:51 /usr/lib/libpq.so.5.2
lrwxrwxrwx 1 root root 12 2009-11-30 12:12 /usr/lib/libpq.so.5 ->=20
libpq.so.5.2
lrwxrwxrwx 1 root root 12 2010-03-02 10:12 /usr/lib/libpq.so ->=20
libpq.so.5.2

ok - that all looks right so far.
per your original email=20
Check the mkmf.log file for more
details.
what does mkmf.log contain?

on my box this file is located at

/usr/lib/ruby/gems/1.8/gems/pg-0.8.0/ext/mkmf.log

That may or may not be where your's is located.
 
R

Reid Thompson

=20
ok - that all looks right so far.
per your original email=20
what does mkmf.log contain?
=20
on my box this file is located at
=20
/usr/lib/ruby/gems/1.8/gems/pg-0.8.0/ext/mkmf.log
=20
That may or may not be where your's is located.

doh -- your's is likely here
 
Ad

Advertisements

S

Saeed Bhuta

Reid said:
doh -- your's is likely here

for

find_executable: checking for pg_config... -------------------- yes

--------------------

have_header: checking for libpq-fe.h... -------------------- yes

"gcc -E -I. -I/usr/lib/ruby/1.8/i486-linux -I.
-I/usr/include/postgresql/include -D_FILE_OFFSET_BITS=64
-I/usr/include/postgresql -fno-strict-aliasing -g -g -O2 -fPIC
conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include <libpq-fe.h>
/* end */

--------------------

have_header: checking for libpq/libpq-fs.h... -------------------- yes

"gcc -E -I. -I/usr/lib/ruby/1.8/i486-linux -I.
-I/usr/include/postgresql/include -D_FILE_OFFSET_BITS=64
-I/usr/include/postgresql -fno-strict-aliasing -g -g -O2 -fPIC
conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include <libpq/libpq-fs.h>
/* end */

--------------------

have_library: checking for PQconnectdb() in
-l/usr/include/postgresql/... -------------------- no

"gcc -o conftest -I. -I/usr/lib/ruby/1.8/i486-linux -I.
-I/usr/include/postgresql/include -D_FILE_OFFSET_BITS=64
-I/usr/include/postgresql -fno-strict-aliasing -g -g -O2 -fPIC
conftest.c -L. -L/usr/lib -L/usr/include/postgresql/lib -L.
-Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -L/usr/lib
-lruby1.8-static -l/usr/include/postgresql/ -lpthread -lrt -ldl -lcrypt
-lm -lc"
conftest.c: In function ‘t’:
conftest.c:3: error: ‘PQconnectdb’ undeclared (first use in this
function)
conftest.c:3: error: (Each undeclared identifier is reported only once
conftest.c:3: error: for each function it appears in.)
checked program was:
/* begin */
1: /*top*/
2: int main() { return 0; }
3: int t() { void ((*volatile p)()); p = (void ((*)()))PQconnectdb;
return 0; }
/* end */

"gcc -o conftest -I. -I/usr/lib/ruby/1.8/i486-linux -I.
-I/usr/include/postgresql/include -D_FILE_OFFSET_BITS=64
-I/usr/include/postgresql -fno-strict-aliasing -g -g -O2 -fPIC
conftest.c -L. -L/usr/lib -L/usr/include/postgresql/lib -L.
-Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -L/usr/lib
-lruby1.8-static -l/usr/include/postgresql/ -lpthread -lrt -ldl -lcrypt
-lm -lc"
/usr/bin/ld: cannot find -l/usr/include/postgresql/
collect2: ld returned 1 exit status
checked program was:
/* begin */
1: /*top*/
2: int main() { return 0; }
3: int t() { PQconnectdb(); return 0; }
/* end */

--------------------

have_library: checking for PQconnectdb() in -llibpq...
-------------------- no

"gcc -o conftest -I. -I/usr/lib/ruby/1.8/i486-linux -I.
-I/usr/include/postgresql/include -D_FILE_OFFSET_BITS=64
-I/usr/include/postgresql -fno-strict-aliasing -g -g -O2 -fPIC
conftest.c -L. -L/usr/lib -L/usr/include/postgresql/lib -L.
-Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -L/usr/lib
-lruby1.8-static -llibpq -lpthread -lrt -ldl -lcrypt -lm -lc"
conftest.c: In function ‘t’:
conftest.c:3: error: ‘PQconnectdb’ undeclared (first use in this
function)
conftest.c:3: error: (Each undeclared identifier is reported only once
conftest.c:3: error: for each function it appears in.)
checked program was:
/* begin */
1: /*top*/
2: int main() { return 0; }
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top