2013-03-08 2 views
7

Я пытаюсь установить жемчуг pg (PostreSQL) для Ruby. Я получаю эту ошибку:pg gem install не может сказать, что версия слишком старая?

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. 

PostgreSQL версии: Postgres (PostgreSQL) 9.2.3

OS: не SOLARIS 10

Я также попытался:

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 

у меня нет идея, почему эта ошибка происходит, и я не могу найти какую-либо полезную информацию в Google.

Любая помощь очень ценится.

+0

У меня есть несколько версий, но я, указывая на правильную версию также в mkmf.log я вижу ту же ошибку, ссылающийся на pQconnectionUsedPassword (). – arrowill12

+2

Возможно, вам нужно будет установить 'PATH', чтобы убедиться, что правильный' pg_config' исполняемый файл сначала находится в 'PATH', и установите любые эквивалентные среды LD_LIBRARY_PATH или Solaris для обеспечения поиска правильного' libpq'. –

+0

Что говорит 'mkmf.log' в разделе, где он проверяет наличие' PQconnectionUsedPassword'? –

ответ

2

Многие вещи могут пойти не так, как установить клиента базы данных, драгоценный камень и использовать его.

Обычно я устанавливаю PostgreSQL из источника, а не из дистрибутива. В этот момент я знаю, что у меня есть все источники и точно знаю, где все было установлено. Это важно при установке драгоценного камня, который говорит с клиентскими драйверами.

Я также полагаюсь на установку Ruby из исходного кода, либо непосредственно устанавливая его самостоятельно, либо используя rbenv или RVM, если он находится в одной из моих окон разработки. Затем я также устанавливаю pg gem напрямую, используя gem install pg; У меня было слишком много плохих опытов с использованием дистрибутивов при установке языков, поэтому я нахожусь на старой школе.

Я написал небольшой скрипт, я использую на своих системах Mac OS, что я нашел полезный для моего коробка CentOS Linux:

 
#!/bin/sh -x 

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

я регулирую PATH добавление в зависимости от того, где было установлено PostgreSQL, и похоже, делает трюк. Я использовал более длинные, более «всеобъемлющие» варианты, но это, похоже, тоже работает.

Проблема заключается в том, что установщик должен выкопать информацию об установке из исполняемого файла pg_config, и возможность найти pg_config выполняет трюк.

+0

Работает каждый раз. – pzin

0

Я схожу с этим, пока не понял, что postgresql-devel и postgresql-libs были от 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

Установка и соединение с PostgreSQL доморощенного фиксированной для меня:

brew install postgresql 
brew unlink postgresql91 
brew link --overwrite postgresql 

 Смежные вопросы

  • Нет связанных вопросов^_^