2013-03-08 13 views
7

私はRuby用のpg(PostreSQL)gemをインストールしようとしています。私は、このエラーが発生します:pg gemのインストールで、バージョンが古すぎると表示されませんでしたか?

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は:私も試してみました10

SOLARISません:

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

適切な 'pg_config'実行ファイルが' PATH'の最初にあることを確認し、適切な 'libpq'が確実に見つかるように' LD_LIBRARY_PATH'またはSolaris同等の環境変数を設定するには、 'PATH'を設定する必要があります。 –

+0

'mkmf.log'は、' PQconnectionUsedPassword'の存在をチェックするセクションで何を言いますか? –

答えて

2

データベースクライアントをインストールして宝石を使い、それを使うのは間違っています。

私は通常、配布元からではなく、ソースからPostgreSQLをインストールします。その時点で私はすべての情報源を持っており、物事がどこにインストールされたのかを正確に知っています。これは、クライアントドライバと通信するgemをインストールするときに重要です。

また、ソースからRubyを直接インストールするか、開発ボックスのいずれかにある場合はrbenvまたはRVMを使用してRubyをインストールすることに依存します。次に、gem install pgを使って直接pg gemをインストールします。私は言語をインストールするときにディストロを使用して、あまりにも多くの悪い経験をしてきたので、私はそれに古い学校に行く。

私は私のCentOSのLinuxボックスの有用であることが分かったので、私は私のMac OSシステム上で使用する小さなスクリプトを書いた:私は、PostgreSQLがインストールされてしまった場所に応じてPATHの追加を調整

 
#!/bin/sh -x 

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

、それそのトリックをするようです。私はより長く、より包括的なオプションも使用しましたが、これもうまくいくようです。

問題は、インストーラがpg_config実行ファイルからインストール情報を調べ、pg_configがそのトリックを見つけることができることです。

+0

毎回動作します。 – pzin

0

postgresql-develpostgresql-libsは、8.1.23からでした。私のためにそれを固定

自作からPostgreSQLのインストールおよびリンク
$ 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

brew install postgresql 
brew unlink postgresql91 
brew link --overwrite postgresql 
関連する問題