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の最新のものをインストールするのだ。
binutilsはftp://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をビルドしてみる。うーん、だめですね。やっぱりコアダンプします。今日はここまで。なにがわるいんだか。付属のドキュメントをもう一度しっかり読んでみよう。