Solarisでmecab

Solari9でmecabのインストールにトライ。結局うまくいかなかったんですが、途中経過をあげておきます。
mecabはここhttp://mecab.sourceforge.jp/あたりからダウンロードできます。
現在の最新バージョンは0.93。ちょっと見ない間に結構すすんだな。

ウェブの解説によると、configure,makeでOKとのこと。早速やってみる。

$ /usr/local/bin/tar -zxvf ./mecab-0.93.tar.gz
$ cd mecab-0.93
$ ./configure

予想通りというかなんというかエラーです。

checking for opendir... yes
checking for setjmp... yes
checking whether make is GNU Make... no
configure: error: "SUN make does not work for building MeCab. Please install GNU make"

ふぅん、そうかよ。Solarisはきらいなんだね。gccもちゃんと見えてるのにさ。

$ which gcc
/usr/local/bin/gcc
$ /usr/local/bin/gcc -v
Using built-in specs.
Target: sparc-sun-solaris2.9
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 4.1.1
$

やりなおし。CC環境変数に/usr/local/bin/gccを指定してあげます。

$ export CC=/usr/local/bin/gcc
$ ./configure

またエラー。

checking for setjmp... yes
checking whether make is GNU Make... no
configure: error: "SUN make does not work for building MeCab. Please install GNU make"

makeもか。PATH環境変数で/usr/local/bin/makeが先に見えるようにしてあげます。

$ which make
$ /usr/ccs/bin/make
$ export PATH=/usr/local/bin:$PATH
$ which make
$ /usr/local/bin/make

ようやくconfigureが通りました。早速makeするのだ。

Making all in tests
make[2]: Entering directory `/export/home/hoge/mecab/mecab-0.93/tests'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/export/home/hoge/mecab/mecab-0.93/tests'
make[2]: Entering directory `/export/home/hoge/mecab/mecab-0.93'
make[2]: Leaving directory `/export/home/hoge/mecab/mecab-0.93'
make[1]: Leaving directory `/export/home/hoge/mecab/mecab-0.93'
$

おっと、あっさりmakeが通った。今度はmake installするのだ。

# /usr/local/bin/make install
Making install in src
make[1]: Entering directory `/export/home/hoge/mecab/mecab-0.93/src'
make[2]: Entering directory `/export/home/hoge/mecab/mecab-0.93/src'
/bin/bash ../mkinstalldirs /usr/local/lib
/bin/bash ../libtool  --mode=install .././install-sh -c libmecab.la /usr/local/lib/libmecab.la
.././install-sh -c .libs/libmecab.so.1.0.0 /usr/local/lib/libmecab.so.1.0.0
../libtool: .././install-sh: bad interpreter: アクセス権がありません。
make[2]: *** [install-libLTLIBRARIES] Error 126
make[2]: Leaving directory `/export/home/hoge/mecab/mecab-0.93/src'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/export/home/hoge/mecab/mecab-0.93/src'
make: *** [install-recursive] Error 1
#

ん?bad interpreterとな?
.././install-sh -c .libs/libmecab.so.1.0.0 /usr/local/lib/libmecab.so.1.0.0
がよくないみたいですね。

# ls -l ./install-sh
-rw-r--r--   1 foo   baa       5569 12月  3日 2005年 install-sh

んーと、これは実行権をつければいいのかな。

# chmod 755 ./install-sh
# /usr/local/bin/make install
(中略)
 ./install-sh -c -m 644 ./mecabrc /usr/local/etc/mecabrc
make[2]: Leaving directory `/export/home/hoge/mecab/mecab-0.93'
make[1]: Leaving directory `/export/home/hoge/mecab/mecab-0.93'
#

あー、通りましたね。
続いて辞書のインストール。こっちの方はスムーズに行きました。

$ /usr/local/bin/tar -zxvf ./mecab-ipadic-2.7.0-20060707.tar.gz
$ cd mecab-ipadic-2.7.0-20060707
$ ./configure
$ /usr/local/bin/make
# /usr/local/bin/make install

さて使ってみる。

$ mecab 今日はいい天気です。
バスエラー

ふがー、Bus errorだと。じゃ、電車をつかえってか。
うーむ、ちょっと気になるのが、mecabのリンクに/usr/ccs/bin/ldが使われたこと。
/usr/local/bin/ldをつかって再度makeしてみる。

$ ./configure --with-gnu-ld
$ /usr/local/bin/make
# /usr/local/bin/make install
$ mecab
バスエラー

だめか。じゃ、こんどはldあたりを更新してみよう。binutilの最新のものをインストールするのだ。
binutilsftp://ftp.gnu.org/gnu/binutilsから入手できます。最新のバージョンは2.17ですね。

$ /usr/local/bin/tar -zxvf binutils-2.17.tar.gz
$ cd binutils-2.17
$ ./configure
$ /usr/local/bin/make
# /usr/local/bin/make install

さてこれで再度mecabをビルドしてみる。うーん、だめですね。やっぱりコアダンプします。今日はここまで。なにがわるいんだか。付属のドキュメントをもう一度しっかり読んでみよう。