[pgsql-jp: 36778] PGNamazuをコンパイル後、CREATE FUNCTION時にエラー(could not load library)

Aoi OGAWA a-ueba @ crc.co.jp
2006年 2月 27日 (月) 16:26:38 JST


はじめまして
おがわあおい@CRCと申します。

参加していきなりで申し訳ないのですが、下記の問題にぶつかってしま
い、解決できずにおります。
つきまして、ご助力いただければと存じます。

■概要
PGNamazu(http://www.nantoka.com/~kei/dist/pgnmz.tgz)を導入
コンパイルは出来るものの、PostgreSQL側でCREATE FUNCTIONを実行す
ると、エラーがでる。

db=# CREATE FUNCTION pgnmz_score(text,text,text)
db-# RETURNS int4
db-# AS '/usr/local/pgsql/lib/pgnmz.so'
db-# LANGUAGE C;

ERROR:  XX000: could not load library "/usr/local/pgsql/lib/pgnmz.so": /usr/local/pgsql/lib/pgnmz.so: undefined symbol: libiconv_open
LOCATION:  load_external_function, dfmgr.c:136

■私にとっての問題点
上記エラーがでる理由がわからないでいます。
ヒントでもよいので、ご教示いただければと存じます。
なお、pgnmz.so の入っている /usr/local/pgsql/lib は ld.so.conf
には登録済みです。

ただ、pgnmz.so から namazu を本当につかえる状態になっているのか
どうかの検証が出来ていません。
# どうやれば検証できるのかがわかりません…。

また、私自身、Linuxやオープンソースへの理解ができていないでいる
ため、問題解決へのロードマップが自分の中で構築できないでいます。

 1) そもそもPGNamazuコンパイル自体に問題はないのか?
 2) 他に必要なlibがあるのか?
 3) エラーの内容から問題解決へのロードマップの作り方は?

このあたり、ご教示いただければと存じます。

■環境
OS と バージョン      :Red Hat Linux release 9
PostgreSQL バージョン :7.4.2
GCC バージョン        :3.2.2
Perl バージョン       :5.8.0 built for i386-linux-thread-multi (関係あるかな?)
namazu バージョン     :2.0.12
PGNamazu バージョン   :1.1

■やったこと
1) PGNamazuのコンパイル
https://www.drive.ne.jp/iMA/showmail.pl?pgsql-jp=30833
を参考にし、同じように
・Makefileの編集 リンクする.oファイルを追加
・Makefileの編集 ライブラリパスを追加
・pgnmz.cの編集 VARSIZE(retp) を VARATT_SIZEP(retp) に変更
を実施後、make にてコンパイル。
だが、この時点でコンパイルエラー。postgres.h が見つからないとの
こと。
find / -name postgres.h で検索したところ、postgresqlのソースファ
イル置き場で発見。そのパスをMakefileに加えて、再度コンパイルで、
コンパイル完了。(これがそもそもの間違い?)

2) PGNamazuをPostgreSQLのライブラリ置き場に移動
PGNamazuをPostgreSQLのライブラリ置き場に移動。
その後、/etc/ld.so.conf にPostgreSQLのライブラリパスを加え、
ldconfig 実行。

3) FUNCTION作成
psql db でdbに接続し、下記のコマンド実行。
db=# CREATE FUNCTION pgnmz_score(text,text,text)
db-# RETURNS int4
db-# AS '/usr/local/pgsql/lib/pgnmz.so'
db-# LANGUAGE C;

ERROR:  XX000: could not load library "/usr/local/pgsql/lib/pgnmz.so": /usr/local/pgsql/lib/pgnmz.so: undefined symbol: libiconv_open
LOCATION:  load_external_function, dfmgr.c:136

がでました。


以上、よろしくお願いいたします。
-- 
CRC Solutions Corp. QC1
Aoi OGAWA <a-ueba @ crc.co.jp>




pgsql-jp メーリングリストの案内