2013-03-08 16 views
7

Próbuję zainstalować gem pg (PostreSQL) dla Ruby. Otrzymuję ten błąd:pg instalacja gem nie powiedzie się, że wersja jest zbyt stara?

postgres/9.2-pgdg/bin/64/pg_config 
Using config values from /location/to/install/postgres/9.2-pgdg/bin/64/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()... no 
Your PostgreSQL is too old. Either install an older version of this gem or upgrade your  database. 
*** 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. 

wersja PostgreSQL: PostgreSQL (PostgreSQL) 9.2.3

System operacyjny: Solaris 10

Próbowałem również:

gem install pg -- --with-pgsql-lib=/location/of/install/postgres/9.2-pgdg/lib/64/ --with-pg-config=/location/of/install/postgres/9.2-pgdg/bin/64/pg_config 

ja nie mam pomysł, dlaczego wystąpił ten błąd, i nie mogę znaleźć żadnych przydatnych informacji w Google.

Każda pomoc jest bardzo doceniana.

+0

mam wiele wersji, ale ja jestem wskazując poprawnej wersji, także w mkmf.log widzę ten sam błąd odwoływania się pQconnectionUsedPassword (). – arrowill12

+2

Być może będziesz musiał ustawić 'PATH', aby upewnić się, że poprawny plik' pg_config' jest pierwszy w 'PATH' i ustawić dowolne zmienne środowiskowe' LD_LIBRARY_PATH' lub Solaris, aby zapewnić znalezienie właściwej 'libpq'. –

+0

Co mówi 'mkmf.log' w sekcji, w której sprawdza obecność' PQconnectionUsedPassword'? –

Odpowiedz

2

Wiele rzeczy może pójść źle instalując klienta bazy danych, klejnot i go używając.

Generalnie instaluję PostgreSQL ze źródła, a nie z dystrybucji. W tym momencie wiem, że mam całe źródło i dokładnie wiem, gdzie wszystko zostało zainstalowane. Jest to ważne podczas instalowania klejnotu, który mówi do sterowników klienta.

Opieram się także na instalacji Ruby ze źródła, albo bezpośrednio instalując ją samodzielnie, albo używając Rbenv lub RVM, jeśli jest na jednym z moich skrzynek programistycznych. Następnie instaluję również pg gem bezpośrednio, używając gem install pg; Podczas instalowania języków miałem zbyt wiele złych doświadczeń przy korzystaniu z dystrybucji, więc chodzę do tego po szkole.

napisałem mały skrypt używam na moich systemach Mac OS, który znalazłem użyteczne dla moich skrzynek CentOS Linux:

 
#!/bin/sh -x 

PATH=/Library/PostgreSQL/9.2/bin:$PATH 
gem install pg 

dostosować dodatek PATH w zależności od tego, gdzie został zainstalowany PostgreSQL, i to wydaje się, że to wystarczy. Użyłem także dłuższych, bardziej "wszechstronnych" opcji, ale wydaje się, że to też działa.

Problem polega na tym, że instalator musi wykopać informacje o instalacji z pliku wykonywalnego pg_config i może znaleźć plik pg_config.

+0

Działa za każdym razem. – pzin

0

Robiłem szaleństwo z tym, aż zdałem sobie sprawę, że postgresql-devel i postgresql-libs były z 8.1.23 !!!

$ yum list installed postgres* 
Loaded plugins: fastestmirror, security 
Installed Packages 
postgresql-devel.i386       8.1.23-10.el5_10      installed 
postgresql-devel.x86_64       8.1.23-10.el5_10      installed 
postgresql-libs.i386       8.1.23-10.el5_10      installed 
postgresql-libs.x86_64       8.1.23-10.el5_10      installed 

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

$ sudo yum install postgresql94-libs 
$ sudo yum install postgresql94-devel 

$ gem install pg 
Successfully installed pg-0.18.1 
0

Instalacja PostgreSQL i powiązanie z homebrew ustalone to dla mnie:

brew install postgresql 
brew unlink postgresql91 
brew link --overwrite postgresql 
Powiązane problemy