libmecab.so.1: cannot open shared object fileとか言われた
mecab-ruby-0.98.tar.gz をダウンロードして
% tar zxf mecab-ruby-0.98.tar.gz % cd mecab-ruby-0.98 % ruby extconf.rb % make % sudo make install
インストールできたので、mecab-rubyについてたtest.rbを実行してみたら、
% ruby test.rb /home/XXXX/local/lib/ruby/site_ruby/1.8/i686-linux/MeCab.so: libmecab.so.1: cannot open shared object file: No such file or directory - /home/XXXX/local/lib/ruby/site_ruby/1.8/i686-linux/MeCab.so (LoadError) from test.rb:3
みたいに言われた。
ライブラリは入ったはずなので確認したら、やっぱり/usr/local/libにインストールされていた。
% find /usr/ -name 'lib*mecab*' /usr/local/lib/libmecab.la /usr/local/lib/libmecab.so /usr/local/lib/libmecab.so.1 /usr/local/lib/libmecab.so.1.0.0 /usr/local/lib/libmecab.a
何でかなーと思ってふとldconfigしてみると、
% ldconfig -p|grep -i '/usr/local/lib' (出力なし)
/usr/local/libを見ていないことがわかったので、/etc/ld.so.confに
/usr/local/lib
を追加して
# ldconfig
すると
% ldconfig -p|grep -i '/usr/local/lib' libmecab.so.1 (libc6) => /usr/local/lib/libmecab.so.1 libmecab.so (libc6) => /usr/local/lib/libmecab.so
ちゃんと更新された。
再度test.rbを実行すると、
% ruby test.rb :
いろいろ出力されて、うまくいった。
めでたしめでたし。