この文章は、さくらインターネット・スタンダードプラン(FreeBSD)で過去にインストールしたMeCab(バージョン0.81)が、最近になって動かなくなってしまった人への処方箋です。
◆現象
2009/4/1 7:34頃からMeCabのPerlバインダがエラーを吐くようになりました。
◆原因
さくらインターネットのrootさんがMeCabの最新バージョンをインストールしたため、過去にユーザ領域にインストールしたMeCabと衝突していたことが原因でした。
◆対処方法
(1) ユーザ領域にインストールしていたMeCabを削除
(2) MeCab.pmを使っているPerlスクリプトを修正
◆問題点
i. 対処方法の(2)が、おそらくいちばん厄介な問題です。MeCab.pmはPerlからMeCabを使うためのバインダです。MeCab.pmの新バージョン(0.97)には、旧バージョン(0.81)との上位互換がありません。MeCabを使っているPerlスクリプトは、新バージョンに合わせて書き直さなければ動きません。
ii. MeCabの新旧では形態素解析の結果が微妙に違うのかもしれません(未調査)。その場合、形態素のデータベースを再構築しなければなりません。
2009年04月01日
2006年05月31日
さくらインターネットで和布蕪(MeCab)をインストールする方法
この文章は、さくらインターネット・スタンダードプラン(FreeBSD)でMeCab、ipadic、MeCab Perlモジュールをインストールする際のメモです。ここでのMeCabのバージョンは0.81です。最新版のMeCabではないので気をつけてください。
説明の都合上、カレントディレクトリを「/home/username/」とします。
表示の関係で本来、一行に記述しなければならないのに改行して表示されている個所があります。注意してください。
◆準備
アーカイブファイルをダウンロードします。
http://chasen.naist.jp/stable/ipadic/ipadic-2.4.4.tar.gz
http://prdownloads.sourceforge.jp/mecab/14968/mecab-0.81.tar.gz
http://prdownloads.sourceforge.jp/mecab/15083/mecab-perl-0.81.tar.gz
◆MeCabのインストール
実行ファイルは「/home/username/local」に作ることにします。
%cd ~
%mkdir local
%tar xvzf mecab-0.81.tar.gz
%cd mecab-0.81
%cd dic
%tar xvzf ~/ipadic-2.4.4.tar.gz
%cd ..
%./configure --prefix=/home/username/local --exec-prefix=/home/username/local
%make
%make install
◆MeCab Perlモジュールのインストール
はじめにMakefile.PLを修正します。mecab-configの場所をフルパスで指定するようにします。修正なしで実行すると「WriteMakefile: Need even number of args at Makefile.PL」というエラーが発生するはずです。
use ExtUtils::MakeMaker;
WriteMakefile(
'NAME' => 'MeCab'、
'CC' => `/home/username/local/bin/mecab-config --cxx`、
'LD' => `/home/username/local/bin/mecab-config --cxx`、
'INC' => `/home/username/local/bin/mecab-config --cflags`、
'LIBS' => `/home/username/local/bin/mecab-config --libs`、
'VERSION' => `/home/username/local/bin/mecab-config --version`、
'OBJECT' => 'MeCab_wrap.o'
);
修正が済んだら以下のコマンドを実行します。
%perl Makefile.PL
%make
これで終わりです。公式のインストールガイドには、つぎにスーパーユーザになって「make install」しろと書かれていますが、さくらインターネットでは権限の都合でエラーになります。
つぎの二つのファイルができているはずなので、これらのファイルをPerlのモジュールを置く場所に移動しておきます。
blib/arch/auto/MeCab/MeCab.so
blib/lib/MeCab.pm
仮に「/home/username/lib」に置くことにします。Perlで使うときはスクリプトの冒頭で
use lib "/home/username/lib"
use MeCab;
と書けばモジュールが読み込まれます。
◆気になりそうなこと
Q:ライトプランでMeCabをインストールするには?
A:ライトプランではシェルが使えないので、普通の手順ではコンパイルできません。スタンダードプランでコンパイルしたファイルをそっくりコピーすれば動くと思います。でもOSの種類やバージョンが一致していないと、だめかもしれません。
Q:共有サーバでコンパイルしていいんですか?
A:問題ないと思います。でも計算機資源を消費するので、とくにWWWサーバとして忙しい時間帯(21時から午前1時あたり)に作業するのは避けた方がよいでしょう。
◆関連リンク
さくらインターネットにてMeCabとNamazuをインストールする方法
http://elementary.matrix.jp/htimanos.html
MeCab 0.81 のインストール方法
http://www.asahi-net.or.jp/~yw3t-trns/namazu/mecab/inst081.htm
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
http://mecab.sourceforge.jp/
説明の都合上、カレントディレクトリを「/home/username/」とします。
表示の関係で本来、一行に記述しなければならないのに改行して表示されている個所があります。注意してください。
◆準備
アーカイブファイルをダウンロードします。
http://chasen.naist.jp/stable/ipadic/ipadic-2.4.4.tar.gz
http://prdownloads.sourceforge.jp/mecab/14968/mecab-0.81.tar.gz
http://prdownloads.sourceforge.jp/mecab/15083/mecab-perl-0.81.tar.gz
◆MeCabのインストール
実行ファイルは「/home/username/local」に作ることにします。
%cd ~
%mkdir local
%tar xvzf mecab-0.81.tar.gz
%cd mecab-0.81
%cd dic
%tar xvzf ~/ipadic-2.4.4.tar.gz
%cd ..
%./configure --prefix=/home/username/local --exec-prefix=/home/username/local
%make
%make install
◆MeCab Perlモジュールのインストール
はじめにMakefile.PLを修正します。mecab-configの場所をフルパスで指定するようにします。修正なしで実行すると「WriteMakefile: Need even number of args at Makefile.PL」というエラーが発生するはずです。
use ExtUtils::MakeMaker;
WriteMakefile(
'NAME' => 'MeCab'、
'CC' => `/home/username/local/bin/mecab-config --cxx`、
'LD' => `/home/username/local/bin/mecab-config --cxx`、
'INC' => `/home/username/local/bin/mecab-config --cflags`、
'LIBS' => `/home/username/local/bin/mecab-config --libs`、
'VERSION' => `/home/username/local/bin/mecab-config --version`、
'OBJECT' => 'MeCab_wrap.o'
);
修正が済んだら以下のコマンドを実行します。
%perl Makefile.PL
%make
これで終わりです。公式のインストールガイドには、つぎにスーパーユーザになって「make install」しろと書かれていますが、さくらインターネットでは権限の都合でエラーになります。
つぎの二つのファイルができているはずなので、これらのファイルをPerlのモジュールを置く場所に移動しておきます。
blib/arch/auto/MeCab/MeCab.so
blib/lib/MeCab.pm
仮に「/home/username/lib」に置くことにします。Perlで使うときはスクリプトの冒頭で
use lib "/home/username/lib"
use MeCab;
と書けばモジュールが読み込まれます。
◆気になりそうなこと
Q:ライトプランでMeCabをインストールするには?
A:ライトプランではシェルが使えないので、普通の手順ではコンパイルできません。スタンダードプランでコンパイルしたファイルをそっくりコピーすれば動くと思います。でもOSの種類やバージョンが一致していないと、だめかもしれません。
Q:共有サーバでコンパイルしていいんですか?
A:問題ないと思います。でも計算機資源を消費するので、とくにWWWサーバとして忙しい時間帯(21時から午前1時あたり)に作業するのは避けた方がよいでしょう。
◆関連リンク
さくらインターネットにてMeCabとNamazuをインストールする方法
http://elementary.matrix.jp/htimanos.html
MeCab 0.81 のインストール方法
http://www.asahi-net.or.jp/~yw3t-trns/namazu/mecab/inst081.htm
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
http://mecab.sourceforge.jp/