Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

mecab-rubyのインストール方法

こんにちは。
今回はMecabRubyで使えるようにするために、OS Xmecabrubyをインストールします。

mecabrubyはソースをダウンロードしてきてインストールします。
ただ、gemでもインストールすることができるのでビルドしたくない方はそちらで。
しかし、gemの場合はruby2.0以上じゃないと正常に動作しないようなので(未確認ですが)、今回は2.0以下で使いたいこともあり、普通にソースを取得してビルドする方法を採用しました。

ソースの取得と解凍

まずはソースを取得しましょう。
なお、mecab-rubymecabのバージョンに合わせたものをダウンロードしないといけないので注意してください。
私の環境ではmecab 0.996なのでそれに合わせます。

$ wget http://mecab.googlecode.com/files/mecab-ruby-0.996.tar.gz
$ tar zxfv mecab-ruby-0.996.tar.gz
$ cd mecab-ruby-0.996

extconf.rb の修正

次に extconf.rb ファイルを修正します。
このファイルでMakefileを作っているのですが、現状のままではMac標準のmecabを参照してしまうので、brewで入れたものを参照するように修正します。

$CFLAGS += ' ' + `#{mecab_config} --cflags`.chomp

$LDFLAGS += ' -L' + `#{mecab_config} --libs-only-L`.chomp # この行を追加

インストール

さて、これでインストールする準備が整いました。
先程のファイルを実行して make install します!

$ ruby extconf.rb
$ make
$ sudo make install

これで何もエラーが出なければOKです。
ただ、ruby 1.9 より下のバージョンだと以下のようなエラーが出るかもしれません(自分は出ました)。

 -c mecab_wrap.cpp
mecab_wrap.cpp:1859:10: fatal error: 'ruby/version.h' file not found

mecab_wrap.cpp を見てみると、今のディレクトリから相対参照で ruby/version.h を include するようにしていたので、以下のように変えたら動くようになりました。

/* 下の行をコメントアウト */
/* #include "ruby/version.h" */
#include <version.h> /* このように変更 */

テストしてみる

さて、makeが無事に通ったらテストしてみましょう。

$ ruby test.rb

これで結果が出力されればOKです!
お疲れ様でした。

なお、rbenvでruby複数バージョン入れている場合は、バージョンごとに上記のインストールをやらないとダメです(自分はこれで若干詰まってました・・・)。

それでは。

参考にさせていただいたサイト

MeCab と MeCab Ruby をインストールする - kzy52's blog

Ruby1.8.7+bundler+mecab-rubyのインストール - ザリガニが見ていた...。