2.7. その他

このセクションではUNIX系の環境でMroongaをソースコードからインストールする方法を説明します。

2.7.1. 依存関係

MroongaをビルドするためにはいくつかのツールとライブラリーとMySQLが必要です。MySQLの代わりにMariaDBを使うこともできます。

2.7.1.1. ツール

必須のツール:

  • wgetcurl または Web ブラウザ(ソースアーカイブをダウンロードするため)

  • targzip (ソースアーカイブを展開するため)

  • シェル( dashbashzsh など、どのようなシェルでもたぶん大丈夫)

  • CコンパイラーとC++コンパイラー ( gccg++ がサポート対象だが、他のコンパイラーでもたぶん大丈夫)

  • make (GNU makeがサポート対象だが、BSD makeなど他のmakeでもたぶん大丈夫)

  • pkg-config (ライブラリを検出するため)

これらを用意してください。

シェルの代わりに CMake を使うこともできますが、このドキュメントではCMakeを使ってビルドする方法については説明しません。

あるとよいツール:

  • sudo (ビルドしたGroongaをインストールするため)

2.7.1.2. ライブラリー

必須のライブラリー:

  • Groonga 。(もしパッケージを使うなら、開発用パッケージをインストールしてください。debなら libgroonga-dev で、RPMなら groonga-devel です。)

  • groonga-normalizer-mysql

あるとよいライブラリー:

  • MeCab: 日本語形態素解析器

    注釈

    形態素単位でトークナイズした全文検索索引を使用したい場合は、Groongaのインストール前に MeCab をインストールしてください。

2.7.1.3. MySQL

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

2.7.2. ソースからビルド

MroongaはGNUビルドシステムを使っています。以下は一番簡単なビルド手順です:

% wget https://packages.groonga.org/source/mroonga/mroonga-6.12.tar.gz
% tar xvzf mroonga-6.12.tar.gz
% cd mroonga-6.12
% ./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-configmysql_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)

以下、それぞれの手順の詳細を説明します。

2.7.2.1. configure

まず configure を実行します。重要な configure の引数は以下の通りです:

2.7.2.1.1. --with-mysql-source=PATH

MYSQLのソースコードがあるディレクトリーを指定します。

これは必須の引数です:

% ./configure \
    --with-mysql-source=/usr/local/src/mysql-5.6.21 \
    --with-mysql-config=/usr/local/mysql/bin/mysql_config

2.7.2.1.2. --with-mysql-build=PATH

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

2.7.2.1.3. --with-mysql-config=PATH

mysql_config コマンドのパスを指定します。

mysql_config コマンドが PATH から探索可能であればこの引数を指定する必要はありません。例えば、 mysql_config/usr/bin/mysql_config にある場合はこの引数を指定する必要はありません:

% ./configure \
    --with-mysql-source=/usr/local/src/mysql-5.6.21

2.7.2.1.4. --with-default-tokenizer=TOKENIZER

全文検索用のデフォルトのトークナイザーを指定します。この値は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-tokenizer=TokenMecab

2.7.2.1.5. --prefix=PATH

インストール先となるディレクトリを指定します。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

2.7.2.1.6. PKG_CONFIG_PATH=PATH

これは 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

2.7.2.2. make

configure が成功したら make でMroongaをビルドします:

% make

マルチコアCPUを使っている場合は -j オプションを使うとより速くmakeを実行できます。もし、4コアのCPUを使っている場合は、 -j4 オプションを使うともっと速くビルドできます:

% make -j4

make で何かエラーが発生した場合は、そのエラーをレポートしてください: 見つけたバグを報告するには

2.7.2.3. make install

これでビルドしたMroongaをインストールできます!:

% sudo make install

${PREFIX} とMySQLのプラグインディレクトリーへの書き込み権限がある場合は sudo を使う必要はありません。例えば、 --prefix=$HOME/local と指定した場合です。この場合は make install を使ってください:

% make install

2.7.2.4. mysql -u root < install.sql

MroongaをMySQLに登録するために INSTALL PLUGINCREATE FUNCTION といったSQLを実行する必要があります。これらのSQLは ${PREFIX}/share/mroonga/install.sql に書かれています。

以下は configure--prefix=$HOME/local と指定した場合の例です:

% mysql -u < $HOME/local/share/mroonga/install.sql