「Ruby/KAKASI extension module」をインストールしようとしています。

http://raa.ruby-lang.org/project/ruby-kakasi/

状況としては、kakasiをインストールして、コマンドラインからの実行テストはできています。

READMEを参照しつつ
#ruby extconf.rb
#make
#make install
とコマンド入力しました。

モジュールを呼びだそうと以下のコマンドを入力すると、エラーが出力されます。
# ruby -e 'require "kakasi"'
/usr/lib/site_ruby/1.8/i386-linux-gnu/kakasi.so: libkakasi.so.2: cannot open shared object file: No such file or directory - /usr/lib/site_ruby/1.8/i386-linux-gnu/kakasi.so (LoadError)

kakasi.soファイル自体は存在しています。
ldまわりがわかりません。

よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/02/22 09:27:46
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Bookmarker No.1

回答回数191ベストアンサー獲得回数34

ポイント200pt

kakasi.so がないと言っているのではなく、kakasi.so が参照している libkakasi.so.2 がないと言っているのだと思います。

kakasi.so をビルドできたということは、おそらく libkakasi.so.2 は /lib, /usr/lib にはなく /usr/local/lib にあって、/usr/local/lib がライブラリーロードパスに登録されていないのではないでしょうか?

もしそうなら、/etc/ld.so.conf ファイルに /usr/local/lib を追加して ldconfig コマンドを実行してみてください。


extconf.rb:

require "mkmf"

$CFLAGS += " -I /usr/local/include "
$LOCAL_LIBS += " -L /usr/local/lib -lkakasi "
create_makefile("kakasi")
id:fjkktkys

ldconfig /usr/local/lib

で、ライブラリロードパスに追加されるということですね。

/erc/ld.so.confには、

include /usr/local/lib

を追記すれば、reboot時に反映されるという感じでいいでしょうか。

よかったら、確認で教えていただけると嬉しいです。

モジュールの読み出しはうまくいっているようです。

また、何かあったらよろしくお願いします。

2008/02/22 09:27:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません