2.9. その他#

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

2.9.1. 依存関係#

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

2.9.1.1. ツール#

必須のツール

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

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

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

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

  • CMake(クロスプラットフォームのビルドシステムとして利用するため)

  • Ninja(高速にビルドするため)

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

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

あるとよいツール

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

2.9.1.2. ライブラリー#

必須のライブラリー

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

  • groonga-normalizer-mysql

あるとよいライブラリー

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

注釈

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

2.9.1.3. MySQL#

Mroongaはインストール済みのMySQLだけでなくMySQLのソースとビルドディレクトリーも必要です。そのため、MySQLのパッケージを使うことはできません。MySQLのパッケージはMySQLのソースとビルドディレクトリーを提供していないからです。MySQLのソースとビルドディレクトリーが必要です!

MySQLの代わりにMariaDBを使う場合でもMariaDBのソースが必要です。

MySQL 8.4最新版のソースコードをダウンロードし、ビルド&インストールして下さい。

こちらのDownload MySQL Community Server を参照して下さい。

mysql-8.4.1を使用し、以下にソースディレクトリが展開されているものと仮定します。

${HOME}/local/src/mysql-8.4.1

次のディレクトリーでビルドします。

${HOME}/local/build/mysql-8.4.1

次のコマンドラインはMySQLをビルド・インストールするコマンドラインです。

$ cmake \
    -S ${HOME}/local/src/mysql-8.4.1 \
    -B ${HOME}/local/build/mysql-8.4.1 \
    -GNinja \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=${HOME}/local
$ cmake --build ${HOME}/local/build/mysql-8.4.1
$ cmake --install ${HOME}/local/build/mysql-8.4.1

Mroongaをインストールする前にMySQLを起動する必要があります。なぜならMroongaを登録するためにいくつかのSQL文を実行する必要があるからです。

2.9.1.4. MariaDB#

MySQLの代わりにMariaDBを使うことができます。

MariaDBをビルドする前にstorage/mroonga/(MariDBにバンドルされているMroonga)を削除しなければいけないことに注意してください。

$ mkdir -p ${HOME}/local/src
$ cd ${HOME}/local/src
$ wget https://downloads.mariadb.org/rest-api/mariadb/11.4.3/mariadb-11.4.3.tar.gz
$ tar xf mariadb-11.4.3.tar.gz
$ rm -rf mariadb-11.4.3/storage/mroonga
$ cd -
$ cmake \
    -S ${HOME}/local/src/mariadb-11.4.3 \
    -B ${HOME}/local/build/mariadb-11.4.3 \
    -GNinja \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=${HOME}/local
$ cmake --build ${HOME}/local/build/mariadb-11.4.3
$ cmake --install ${HOME}/local/build/mariadb-11.4.3

2.9.2. ソースからビルド#

MroongaはCMakeを使っています。以下は一番簡単なビルド手順です。

$ cd ${HOME}/local/src
$ wget https://packages.groonga.org/source/mroonga/mroonga-latest.tar.gz
$ tar xvf mroonga-latest.tar.gz
$ mroonga_base_name=$(find mroonga-* -maxdepth 0 -type d)
$ cmake \
    -S ${HOME}/local/src/${mroonga_base_name} \
    -B ${HOME}/local/build/${mroonga_base_name} \
    -GNinja \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=${HOME}/local \
    -DMYSQL_BUILD_DIR=${HOME}/local/build/mysql-8.4.1 \
    -DMYSQL_CONFIG=${HOME}/local/bin/mysql_config \
    -DMYSQL_SOURCE_DIR=${HOME}/local/src/mysql-8.4.1
$ cmake --build ${HOME}/local/build/${mroonga_base_name}
$ cmake --install ${HOME}/local/build/${mroonga_base_name}
$ ${HOME}/local/bin/mysql -u root < ${HOME}/local/share/mroonga/install.sql

次のことを cmake で指定しなければいけません。

  • -DMYSQL_BUILD_DIR: MySQLのビルドディレクトリー

  • -DMYSQL_CONFIG: mysql_configコマンドのパス

  • -DMYSQL_SOURCE_DIR: MySQLのソースディレクトリー

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.9.2.1. cmake#

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

2.9.2.1.1. -DMYSQL_SOURCE_DIR=PATH#

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

これは必須の引数です。

2.9.2.1.2. -DMYSQL_BUILD_DIR=PATH#

MySQLのソースコードをビルドしたディレクトリーを指定します。

MySQLのソースコードがあるディレクトリーでビルドした場合はこの引数を指定する必要はありません。他のディレクトリーでビルドしたときはこの引数を指定する必要があります。

2.9.2.1.3. -DMYSQL_CONFIG=PATH#

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

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

2.9.2.1.4. -DMRN_DEFAULT_TOKENIZER=TOKENIZER#

全文検索用のデフォルトのトークナイザーを指定します。この値はmy.cnfでもカスタマイズできます。

デフォルト値は TokenBigram です。

デフォルトのトークナイザーとして TokenMecab を使う例です。

$ cmake ... -DMRN_DEFAULT_TOKENIZER=TokenMecab

2.9.2.1.5. -DCMAKE_BUILD_TYPE={Release,Debug,RelWithDebInfo}#

ビルドタイプを指定します。

本番環境でこのMroongaを使う場合は-DCAMKE_BUILD_TYPE=Releaseまたは-DCAMKE_BUILD_TYPE=RelWithDebInfoを指定するべきです。最適化が有効になります。

開発用にこのMroongaを使う場合は-DCAMKE_BUILD_TYPE=Debugを使うべきです。最適化が無効になり、デバッグシンボルが有効になります。これらは開発時に有用です。

2.9.2.1.6. -DCMAKE_INSTALL_PREFIX=PREFIX#

インストール先となるディレクトリを指定します。Mroonga関連のファイルは ha_mroonga.so を除いて ${PREFIX}/ ディレクトリ以下にインストールされます。 ha_mroonga.so はMySQLのプラグインファイルです。これはMySQLのプラグインディレクトリーにインストールされます。

デフォルトは /usr/local です。この場合、Mroongaをインストールするために使う install.sql/usr/local/share/mroonga/install.sql にインストールされます。

2.9.2.2. cmake --build#

cmake が成功したら cmake --build でMroongaをビルドします。

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

2.9.2.3. cmake --install#

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

${PREFIX}とMySQLのプラグインディレクトリーへの書き込み権限がない場合は、sudoを使わないといけません。

$ sudo cmake --install ${HOME}/local/build/${mroonga_base_name}

2.9.2.4. mysql -u root < install.sql#

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

2.9.2.5. Mroongaのアンインストール#

Mroongaをアンインストールしたい場合は次のコマンドラインを使ってください。

$ ${HOME}/local/bin/mysql -u root < ${PREFIX}/share/mroonga/uninstall.sql
$ xargs rm < ${HOME}/local/build/mroonga/install_manifest.txt