人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

「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まわりがわかりません。

よろしくお願いします。

●質問者: フジカケ
●カテゴリ:ウェブ制作
✍キーワード:GNU i386 Kakasi LD LIB
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● しおり
●200ポイント ベストアンサー

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")
◎質問者からの返答

ldconfig /usr/local/lib

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

/erc/ld.so.confには、

include /usr/local/lib

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ