このセクションではUNIX系の環境でMroongaをソースコードからインストールする方法を説明します。
MroongaをビルドするためにはいくつかのツールとライブラリーとMySQLが必要です。MySQLの代わりにMariaDBを使うこともできます。
必須のツール:
wget 、 curl または Web ブラウザ(ソースアーカイブをダウンロードするため)
tar と gzip (ソースアーカイブを展開するため)
シェル( dash 、 bash 、 zsh など、どのようなシェルでもたぶん大丈夫)
CコンパイラーとC++コンパイラー ( gcc と g++ がサポート対象だが、他のコンパイラーでもたぶん大丈夫)
make (GNU makeがサポート対象だが、BSD makeなど他のmakeでもたぶん大丈夫)
pkg-config (ライブラリを検出するため)
これらを用意してください。
シェルの代わりに CMake を使うこともできますが、このドキュメントではCMakeを使ってビルドする方法については説明しません。
あるとよいツール:
sudo (ビルドしたGroongaをインストールするため)
必須のライブラリー:
Groonga 。(もしパッケージを使うなら、開発用パッケージをインストールしてください。debなら libgroonga-dev で、RPMなら groonga-devel です。)
あるとよいライブラリー:
Mroongaはインストール済みのMySQLだけでなくMySQLのソースとビルドディレクトリーも必要です。そのため、MySQLのパッケージを使うことはできません。MySQLのパッケージはMySQLのソースとビルドディレクトリーを提供していないからです。MySQLのソースとビルドディレクトリーが必要です!
MySQLの代わりにMariaDBを使う場合でもMariaDBのソースが必要です。
MySQL 5.6最新版のソースコードをダウンロードし、ビルド&インストールして下さい。
mysql-5.6.21を使用し、以下にソースディレクトリが展開されているものと仮定します:
/usr/local/src/mysql-5.6.21
次のディレクトリーでビルドします:
/usr/local/build/mysql-5.6.21
次のコマンドラインはMySQLをビルド・インストールするコマンドラインです:
% cd /usr/local/build/mysql-5.6.21
% cmake /usr/local/src/mysql-5.6.21
% make
% sudo make install
MySQLのバイナリが以下にインストールされているものと仮定します:
/usr/local/mysql
MroongaはGNUビルドシステムを使っています。以下は一番簡単なビルド手順です:
% wget http://packages.groonga.org/source/mroonga/mroonga-5.00.tar.gz
% tar xvzf mroonga-5.00.tar.gz
% cd mroonga-5.00
% ./configure \
--with-mysql-source=/usr/local/src/mysql-5.6.21 \
--with-mysql-build=/usr/local/build/mysql-5.6.21 \
--with-mysql-config=/usr/local/mysql/bin/mysql_config
% make
% sudo make install
% /usr/local/mysql/bin/mysql -u root < /usr/local/share/mroonga/install.sql
次のことを configure で指定しなければいけません。
-with-mysql-source でMySQLのソースコードがあるディレクトリーを指定します。
--with-mysql-build でMySQLのビルドディレクトリーを指定します。
--with-mysql-config で mysql_config コマンドのパスを指定します。
SHOW ENGINES SQLを実行することでMroongaが正常にインストールされているかを確認できます。 Mroonga という行があればMroongaは正常にインストールされています:
mysql> SHOW ENGINES;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Mroonga | YES | Fulltext search, column base | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
6 rows in set (0.00 sec)
以下、それぞれの手順の詳細を説明します。
まず configure を実行します。重要な configure の引数は以下の通りです:
MYSQLのソースコードがあるディレクトリーを指定します。
これは必須の引数です:
% ./configure \
--with-mysql-source=/usr/local/src/mysql-5.6.21 \
--with-mysql-config=/usr/local/mysql/bin/mysql_config
MySQLのソースコードをビルドしたディレクトリーを指定します。
MySQLのソースコードがあるディレクトリーでビルドした場合はこの引数を指定する必要はありません。他のディレクトリーでビルドしたときはこの引数を指定する必要があります。
以下は /usr/local/build/mysql-5.6.21 でMySQLをビルドした時の例です:
% ./configure \
--with-mysql-source=/usr/local/src/mysql-5.6.21 \
--with-mysql-build=/usr/local/build/mysql-5.6.21 \
--with-mysql-config=/usr/local/mysql/bin/mysql_config
mysql_config コマンドのパスを指定します。
mysql_config コマンドが PATH から探索可能であればこの引数を指定する必要はありません。例えば、 mysql_config が /usr/bin/mysql_config にある場合はこの引数を指定する必要はありません:
% ./configure \
--with-mysql-source=/usr/local/src/mysql-5.6.21
全文検索用のデフォルトのパーサーを指定します。この値はmy.cnfでもカスタマイズできます。
デフォルト値は TokenBigram です。
デフォルトのパーサーとして TokenMecab を使う例です:
% ./configure \
--with-mysql-source=/usr/local/src/mysql-5.6.21 \
--with-mysql-config=/usr/local/mysql/bin/mysql_config \
--with-default-parser=TokenMecab
インストール先となるディレクトリを指定します。Mroonga関連のファイルは ha_mroonga.so を除いて ${PATH}/ ディレクトリ以下にインストールされます。 ha_mroonga.so はMySQLのプラグインファイルです。これはMySQLのプラグインディレクトリーにインストールされます。
デフォルトは /usr/local です。この場合、Mroongaをインストールするために使う install.sql は /usr/local/share/mroonga/install.sql にインストールされます。
以下はシステム全体にMroongaをインストールするのではなく、ユーザーが個人で使う目的で ~/local にインストールする例です:
% ./configure \
--prefix=$HOME/local \
--with-mysql-source=$HOME/local/src/mysql-5.6.21 \
--with-mysql-config=$HOME/local/mysql/bin/mysql_config
これは configure の引数ではありませんが、Groongaを標準的な場所にインストールしていないユーザーのために説明します。
Groongaを /usr/lib など標準のパス以外にインストールした場合は PKG_CONFIG_PATH を指定する必要があります。例えば、 ーーprefix=$HOME/local でGroongaをインストールした場合は以下のようにします:
./configure \
PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig \
--with-mysql-source=/usr/local/src/mysql-5.6.21 \
--with-mysql-config=/usr/local/mysql/bin/mysql_config
configure が成功したら make でMroongaをビルドします:
% make
マルチコアCPUを使っている場合は -j オプションを使うとより速くmakeを実行できます。もし、4コアのCPUを使っている場合は、 -j4 オプションを使うともっと速くビルドできます:
% make -j4
make で何かエラーが発生した場合は、そのエラーをレポートしてください: 見つけたバグを報告するには
これでビルドしたMroongaをインストールできます!:
% sudo make install
${PREFIX} とMySQLのプラグインディレクトリーへの書き込み権限がある場合は sudo を使う必要はありません。例えば、 --prefix=$HOME/local と指定した場合です。この場合は make install を使ってください:
% make install
MroongaをMySQLに登録するために INSTALL PLUGIN や CREATE FUNCTION といったSQLを実行する必要があります。これらのSQLは ${PREFIX}/share/mroonga/install.sql に書かれています。
以下は configure に --prefix=$HOME/local と指定した場合の例です:
% mysql -u < $HOME/local/share/mroonga/install.sql