gotagota日記

「面白きことは良きことなり」

古いバージョンの 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 すればうまくはいります。

参考URL