古いバージョンの mecab を homebrew でいれたのでメモ とちょっとしたエラー対処
今現在の mecab 最新バージョンは 0.996 なので、単純に $ homebrew install mecab
とすると 0.996 が入ってしまいます。
今回は、mecab-ruby とのバージョンの兼ね合いで mecab 0.99 を使う必要が出たのでそのインストール手順をメモします。
環境
- Homebrew 0.9.5
前提
少し前だと、
$ brew versions mecab
で過去のバージョンを調べ、Formula の過去バージョン にチェックアウトしてから インストールすればよかったらしいです。
しかーし!
homebrew のアップデートに伴いその機能がなくなってしまったみたいです。
現在はそれに変わる機能で、Homebrew-versions というものが使われだしたらしいのですが、使い方がわからず(というかそもそも mecab 自体組み込まれてない???) 断念。
なので、今回は参考URLあげたリンク先のページから拝借して、各バージョンとそれに伴う git ブランチを以下に書きます。
0.996 git checkout ee21df2 /usr/local/Library/Formula/mecab.rb 0.995 git checkout 1c6ad82 /usr/local/Library/Formula/mecab.rb 0.994 git checkout 4844910 /usr/local/Library/Formula/mecab.rb 0.993 git checkout 642c664 /usr/local/Library/Formula/mecab.rb 0.992 git checkout bb95f13 /usr/local/Library/Formula/mecab.rb 0.99 git checkout 01788c0 /usr/local/Library/Formula/mecab.rb 0.98 git checkout 0476235 /usr/local/Library/Formula/mecab.rb
これを参考にいれたいバージョンをいれてください。
実際の手順
今回は 0.99 を使いたいので、
$ git checkout 01788c0 /usr/local/Library/Formula/mecab.rb
$ brew install mecab mecab-ipadic
こうする。
※ mecab-ipadic は辞書です。
これで、たいていの方ははいると思います。
$ mecab すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
すげええええええ。
補足
で、
実は mecab のインストール時に以下のようなメッセージが出てけっこうはまりました。
$ brew install mecab ==> Downloading http://mecab.googlecode.com/files/mecab-0.99.tar.gz ######################################################################## 100.0% ==> ./configure --prefix=/usr/local/Cellar/mecab/0.99 ==> make install MeCab::Iconv::open(char const*, char const*) in iconv_utils.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [libmecab.la] Error 1 make: *** [install-recursive] Error 1
詳しいことはよくわかりませんw
$ brew doctor
してみると、
Warning: Some keg-only formula are linked into the Cellar. Linking a keg-only formula, such as gettext, into the cellar with `brew link <formula>` will cause other formulae to detect them during the `./configure` step. This may cause problems when compiling those other formulae. Binaries provided by keg-only formulae may override system binaries with other strange results. You may wish to `brew unlink` these brews: libiconv libxml2 libxslt
と出て、思い出しました。
最近 nokogiri を入れた際に警告を出すようになって、その時に
$ brew link libiconv libxml2 libxslt
としたのがどうやら原因みたいです。(曖昧)
なので、
$ brew unlink libiconv libxml2 libxslt
としたあとに、$ brew install mecab
すればうまくはいります。