[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 メーリングリストの案内