2012年5月16日

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

__JC__ と申します。

/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 よりも先にきていました。おそらくその順番の
違いが原因だと思われます。


On 2012/05/16, at 2:06, SHINODA Masanori wrote:

> 篠田です。
>
> なかださん、ご教示ありがとうございます。
>
> 2012年5月15日 22:51 Nobuyoshi Nakada <nobu@xxxxx>:
>>> # cat /vol1/usr/local/lib/ruby/gems/1.9.1/gems/pg-0.13.2/ext/mkmf.log
>>
>> パスが違うようですが、symlinkが張ってあるということでしょうか。
>> /usr/localと/vol1/usr/localは同じと仮定しますが、いずれにしても最初のメー
>> ルにあった設定とは一致していないように見えます。
>>
>> (12/05/15 7:28), SHINODA Masanori wrote in [ruby-list:48746]:
>>> root でも、PGLIB 等のセットは行っております。
>>>
>>> POSTGRES_HOME=/usr/local/pgsql
>>> PGLIB=/usr/local/pgsql/lib
>>> PGDATA=/usr/local/pgsql/data
>>> LD_LIBRARY_PATH=/usr/local/pgsql/lib
>>
>> mkmf.logを見る限り、実行しているコマンド自体はおかしなところはなさそう
>> ですが、やはりPQconnectionUsedPasswordが見つかっていないようです。
>> /usr/local/libにあるlibpq.soが正しいものかどうか確認してみてください。
>
> すみません。
> /usr/local に、/vol1/usr/local のシンボリックリンクを張っていることを書き
> 忘れておりました。
>
> 確かにご指摘のとおり、
>
> /vol1/usr/local/lib/libpq.so
> /vol1/usr/local/pgsql/lib/libpq.so
>
> の2つのlibpq.soが存在していました。
> 日付から見ると、/vol1/usr/local/lib/libpq.so は 2年前に FreeBSD をセット
> アップしていた頃のものなので、何かを packages や ports で入れた時に依存関
> 係からインストールされたものだと思います。
>
> gem コマンド実行時に指定していた pg_config の位置も間違っていたので、
>
> gem install pg -v '0.13.2' --
> --with-pg_config=/vol1/usr/local/pgsql/bin/pg_config
>
> このように正しい位置を指定したところ、
>
> /vol1/usr/local/pgsql/lib
> /vol1/usr/local/pgsql/include
>
> も gcc のオプションにセットされるようにはなったのですが、結果は同じ。
> つまり、先に
>
> /vol1/usr/local/lib
> /vol1/usr/local/include
>
> を参照して、古いバージョンのファイルを捕まえてしまっている・・・というこ
> となのでしょう・・・
>
> 今度、/vol1/usr/local/pgsql 以下のファイルのシンボリックリンクを
>
> /vol1/usr/local/lib
> /vol1/usr/local/include
>
> の下に作ってチャレンジしてみます。
>
> ご教示いただき、大変ありがとうございました。
>
> --
> 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日 12:05
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110616
トラックバック
コメント
コメントする




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