* インストール方法

インストール方法について解説します。

* 何をインストールすればいいの？
,                                              ,分かち書きインデックス(通常),N-gramインデックス,英語文書
,Senna+MySQL binding(通常)                     ,MeCab/Senna/MySQL           ,Senna/MySQL       ,Senna/MySQL
,Senna単体(Ruby/Perl/PHP/Cなどから利用する場合),MeCab/Senna                 ,Senna             ,Senna

N-gramインデックス、または英語文書のみ用いる場合には、
Sennaのconfigureの際、以下のように--without-mecabオプションを設定してください。
 ./configure --prefix=/usr --without-mecab

* インストールの流れ
+MeCab 0.81以降のインストール
+Sennaのインストール
+MySQLのインストール

Unix系OSとWindowsについてそれぞれ解説します。
なお、WindowsでもMySQLバインディングを利用できるようですが、
ここでは解説しておりません。

* Unix系

 注: コンパイル環境および動作を確認した環境
 Linuxカーネル            : 2.4.27-2-686
 ディストリビューション    : Debian/sarge

** 1) MeCabのインストール

MeCabは0.81以上のバージョンに対応しています。
下記よりソースコードをダウンロードするか、
各種パッケージを用いてインストールください。

http://mecab.sourceforge.jp/#download

'''文字コードをEUCから変えたい場合'''

MeCabは、デフォルトでEUCを使うように設定されます。

MeCab 0.81では、本体のconfigureを行う際に、
 > ./configure --prefix=/usr --with-charset=utf8
というように文字コードを指定してください。

MeCab 0.90ではMeCab用の辞書のconfigureを行う際に、
 > ./configure --prefix=/usr --with-charset=utf8
と指定するか、
mecab-dict-indexを用いて辞書を再構築してください。
 > /usr/local/libexec/mecab/mecab-dict-index -c utf8

** 2) sennaのインストール

 > svn co http://svn.razil.jp/senna/trunk senna
 > cd senna
 > ./configure --prefix=/usr
 > make
 > sudo make install

UTF-8やShift-JISでのインデックス作成を行う場合には、

 > sudo mkdir /var/senna
 > sudo vi /var/senna/senna.conf
 DEFAULT_ENCODING utf8等、
 文字コードを記述する(EUCの場合は不要。値はeuc, sjis, utf8のいずれか)

** 3) MySQLのインストール

MySQLバインディングを利用する場合のみ、MySQLをインストールする必要があります。
詳しくは、[[mysql_binding]]をご覧ください。

MySQLは4.0系, 4.1系, 5.0系に対応しています。
sennaを組み込むためにpatchをあてる必要がありますので、
sourceからビルドしなければなりません。

http://dev.mysql.com/downloads/
から必要なsourceコードをダウンロードし、
手元に展開した上で対応するsennaのパッチをあてます。

(patch versionとMySQLのversionが大きく違う場合は、patch -Fで大きめの数値を与えるとうまく通るかも知れません)

 > cd mysql-4.0.27
 > patch -p1 < ../senna/bindings/mysql/mysql-4.0.27.senna.diff

2ind-patchを併用する場合には、上記コマンドの実行後、
 > patch -p1 < ../senna/bindings/mysql/mysql-4.0.27.senna.2ind.diff
と実行ください。

autotoolsを用いて、configureを再作成します。
''bison 1.75, autoconf 2.59, automake 1.8(aclocal 1.8)以上が必要です''

 > libtoolize -c -f
 > aclocal-1.9
 > autoheader
 > automake-1.9 -c -a -i
 > autoconf

sql/sql_yacc.yyをtouchします。
 > touch sql/sql_yacc.yy

configureで環境設定を行い、
makeを実行してください。
configureには、「--with-senna」オプションを指定してください。

 > ./configure --with-charset=utf8 --with-extra-charsets=ujis,sjis --with-named-curses-libs=/lib/libncurses.so.5 --with-senna
 > make
 > sudo make install

環境によっては「--with-named-curses-libs=/lib/libncurses.so.5」は必要なかったりします。
makeの途中でlibncurses.so.x.x関係のエラーが出た場合には、

 # ldconfig -p | grep libncurses

としてlibncursesを探してください。

また、--with-charsetと--with-extra-charsetsのいずれかに、
MeCabで指定した文字コードに対応する
utf8,sjis,ujis(注意:eucではありません!)のいずれかの値が
入っていなければなりません。

MySQLのconfigureオプションについての説明
( http://dev.mysql.com/doc/refman/4.1/ja/configure-options.html )
も参考にして、
なるべく性能が高いMySQLをmakeしてください。

configureオプションの実例は[[mysql_configure]]にあります。

----
コンフィグファイルを配置します。
ここではmy-medium.cnfをコピーしていますが、
データベースの規模に合わせて、
my-huge.cnfなどの他のコンフィグファイルをコピーしてください。

 > sudo cp -p ./support-files/my-medium.cnf /etc/my.cnf

データベースを初期化します。

 > sudo ./scripts/mysql_install_db

データベースの格納パス以下について、所有者とグループを変更します。

 > sudo chown -R mysql:mysql /usr/local/var

mysql起動スクリプトを用いて、mysqlを起動します。

 > chmod +x ./support-files/mysql.server
 > sudo ./support-files/mysql.server start

mysqladminを使って、mysql serverが起動していることを確認します。

 > mysqladmin version

mysql起動スクリプトが自動起動されるように配置します。

 > sudo cp ./support-files/mysql.server /etc/init.d/mysql

* windows

 注: 動作を確認した環境。
 Microsoft Visual Studio .NET 2003 Ver7.1
 WindowsXP Pro SP2

** 1) ソースファイルの取得

subversion経由により以下コマンドで最新のsennaリポジトリを取得。

 svn checkout svn://svn.razil.jp/senna/trunk senna

** 2) コンパイルに必要なもの

バージョン0.81以上のmecabのmecab.hとlibmecab.libが必要。

http://mecab.sourceforge.jp/#download

** 3) 動作に必要なもの

バージョン0.81以上のmecabのlibmecab.dllが必要。

windowsディレクトリ(c:\WINDOWS)のsystem32以下にlibmecab.dllを置く。

** 4) sennaのビルド手順

-- sennaのsenna\vcc\mecabフォルダにmecab.hとlibmecab.libをコピー。

-- senna\vccフォルダのlibsenna.vcprojをVisualStdioで開く。

-- 「ビルド」メニューから"libsennaのビルド"を実行。

-- ビルドに成功するとDebugビルドではsenna\vcc\Debugフォルダに、Releaseビルドではsenna\vcc\Releaseフォルダに、ibsenna.libとlibsenna.dllが作成される。

-- libsenna.dllをwindowsディレクトリ(c:\WINIDOWS)のsystem32以下に移動する。

** 5) sennaの関数を呼び出すwin32アプリケーションの作成

作成したlibsenna.libをインポートライブラリとして指定し、
sennaフォルダにあるsenna.hをインクルードする。
