cygwin上にmecab&mecab-rubyをインストール

少し苦労したけど、以下の手順でcygwin上にインストール可能です。
mecabは現時点で最新の配布版0.98pre20.98pre30.98を使ってます。
(5月31日に0.98pre3が出たようですが、下記のエラーや対策は同じでした)
(追記: 0.98対象に更新。mecab-rubyのinstall方法を修正)

必要cygwinパッケージ

  • gcc-g++
  • make
  • expat
  • gettext
  • gettext-devel
  • libiconv
  • libtool
  • ruby (mecab-ruby用)

補足の修正を行う場合

  • automake
  • autoconf

mecabインストール

wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-0.98.tar.gz
tar zxf mecab-0.98.tar.gz
cd mecab-0.98pre3
./configure --with-charset=utf-8 CPPFLAGS=-DNOMINMAX LIBS=-liconv
make
make install

CPPFLAGとLIBSは、cygwin固有のビルドエラーへの対策で入れてます。以下は、そのエラーの解消法です。

補足1: CPPFLAG対策の不要化

src/common.h中の

#include <sstream>

#ifdef __CYGWIN__
#define _GLIBCXX_EXPORT_TEMPLATE
#endif

の部分を

#ifdef __CYGWIN__
#define _GLIBCXX_EXPORT_TEMPLATE
#endif
#include <sstream>

に修正する(sstreamの前で定義しないと無意味)

補足2: LIBS対策の不要化

configure.in中の

AC_CHECK_LIB(iconv,iconv_open)

の部分を

AC_CHECK_LIB(iconv,libiconv_open)
AC_CHECK_LIB(iconv,iconv_open)

に変更後、コマンドライン

libtoolize -cf
aclocal --force
autoreconf

を実行する(cygwinのlibiconvではiconv_openはマクロでlibiconv_openに置換されるようになってるため、そのシンボルで追加が必要)。


この二つの修正を行っていれば

./configure --with-charset=utf-8
make
make install

でインストール可能になります。

ipadicインストール

wget http://ncu.dl.sourceforge.net/sourceforge/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
tar zxf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf-8
make
make install

mecab-rubyインストール(gem利用)

wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-ruby-0.98.tar.gz
tar zxf mecab-ruby-0.98.tar.gz
cd mecab-ruby-0.98
gem build mecab-ruby.gemspec
gem install mecab-ruby-0.97.gem -- --with-opt-libs=/usr/local/lib

(gem installでは、--以降で、extconf.rbオプションを指定しています。)

付属のtest.rbが実行できれば成功です。

ruby -rubygems test.rb


gemを使わない場合は

ruby extconf.rb
make
make install

アップグレード時の注意

新しいファイルをビルドする前に、古いバージョンのディレクトリ上で

make uninstall

しておき、上記のようにビルドします。

mecab-rubyでは、

gem uninstall mecab-ruby

で古いバージョンを消してから、gem installします。