2012年5月16日

[ruby-list:48768] Re: gem install pg で、PQconnectionUsedPassword チェックが no となる

篠田です。

__JC__さん、ご教示ありがとうございます。

2012年5月16日 12:05 __JC__ <02ybur@xxxxx>:
> /usr/local/{include, lib} に存在する古い Postgres ライブラリ ではなくて、
> /usr/local/pgsql/{include, lib} 以下にある Postgres ライブラリを使いたい
> という理解でよいでしょうか。


はい。そうです。

> であれば、
>
> gem install pg -- --with-pg-dir=/usr/local/pgsql/
>
> で上手くいかないでしょうか?
>
> 手元の環境で gem コマンド自体を試してないですが、pg-0.13.2/ext/ 以下で下記2つを実行して、
> 1) ruby extconf.rb --with-pg-dir=/usr/local/pgsql
> 2) ruby extconf.rb --with-pg-config=/usr/local/pgsql/bin/pg_config
>
> mkmf.log を見比べると、いずれの場合もライブラリパスオプション -L/usr/local/pgsql/lib は
> 含まれているのですが、1) の場合 -L/usr/local/pgsql/lib が -L/usr/local/lib よりも前に置かれていて、
> 2) の場合は -L/usr/local/lib が -L/usr/local/pgsql/lib よりも先にきていました。おそらくその順番の
> 違いが原因だと思われます。

gem install pg -v '0.13.2' -- --with-pg-dir=/usr/local/pgsql
を実行してみましたが、今までと同様のエラーが発生しました。
# gem install pg -v '0.13.2' -- --with-pg-dir=/usr/local/pgsql
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 --with-pg-dir=/usr/local/pgsql
checking for pg_config... yes
Using config values from /usr/local/bin/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.

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
--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
--with-pqlib
--without-pqlib


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

ログファイル /vol1/usr/local/lib/ruby/gems/1.9.1/gems/pg-0.13.2/ext/mkmf.log
を見てみると、

-I. -I/usr/local/pgsql/include -I/usr/local/include

このように、include ファイルは /usr/local/pgsql/include が先に参照されるようですが、
lib については、

-L. -L/usr/local/lib -Wl,-R/usr/local/lib -L/usr/local/pgsql/lib
-Wl,-R/usr/local/pgsql/lib

このように、/usr/local/lib を先に参照するようです。

--
SHINODA Masanori <shinoda@xxxxx>
Net & Field Co.,Ltd. Internet Service Section
Phone 082-231-0760 Fax 082-231-0776
Portable... 090-6419-9919


投稿者 xml-rpc : 2012年5月16日 23:41
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110619
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。