FreeBSDへのMeCab-Rubyのインストールでハマる
MeCab - Browse Files at SourceForge.net
から,次のファイルをダウンロードします.
mecab-0.98.tar.gz
mecab-ipadic-2.7.0-20070801.tar.gz
mecab-ruby-0.98.tar.gz
まず,MeCabのインストール.
# ./configure --enable-utf8-only --with-charset=utf8 ./.libs/libmecab.so: undefined reference to `libiconv_open' ./.libs/libmecab.so: undefined reference to `libiconv_close' ./.libs/libmecab.so: undefined reference to `libiconv' *** Error code 1
libiconvを独自にインストールして/usr/local以下にあるので,認識されなかったようです.
環境変数をセットし直して出直しです.
# setenv CFLAGS "-L/usr/local/lib" # setenv CPPFLAGS "-I/usr/local/include" # setenv LDFLAGS "-liconv" # make clean; make; make install # mecab tagger.cpp(151) [load_dictionary_resource(param)] param.cpp(71) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc
おっと.ipadicをインストールし忘れていました.
# tar xvf mecab-ipadic-2.7.0-20070801.tar.gz # cd mecab-ipadic-2.7.0-20070801 # ./configure --with-charset=utf-8;make;make install
再びmecabをテストします.
# mecab -D filename: /usr/local/lib/mecab/dic/ipadic/sys.dic version: 102 charset: utf-8 type: 0 size: 392126 left size: 1316 right size: 1316 # mecab すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
# ruby extconf.rb;make;make install # ruby test.rb /libexec/ld-elf.so.1: /usr/local/lib/ruby/site_ruby/1.8/i386-freebsd7/MeCab.so: Undefined symbol "_ZN5MeCab12createTaggerEPKc"
エラーですね...調べてみましょう.
# nm MeCab.so (中略) 00001e60 t _Z34MeCab_Tagger_parseToString__SWIG_0PN5MeCab6TaggerEPKcj U _ZN5MeCab12createTaggerEPKc (後略)
SWIG?!
そう,FreeBSDにはデフォルトではSWIGが入っていないので,最初っから入れ直しなのです.
SWIGをインストール
Download SWIG
# wget http://prdownloads.sourceforge.net/swig/swig-1.3.40.tar.gz # tar xvf swig-1.3.40.tar.gz # cd swig-1.3.40 # ./configure; make; make install
そしてMeCab,MeCab-rubyもmake cleanしてからmake;make installをやり直します.これでMeCab-Rubyのruby test.rbが通りました.