2.9. その他#
このセクションではUNIX系の環境でMroongaをソースコードからインストールする方法を説明します。
2.9.1. 依存関係#
MroongaをビルドするためにはいくつかのツールとライブラリーとMySQLが必要です。MySQLの代わりにMariaDBを使うこともできます。
2.9.1.1. ツール#
必須のツール
wget
、curl
または Web ブラウザ(ソースアーカイブをダウンロードするため)tar
とgzip
(ソースアーカイブを展開するため)シェル(
dash
、bash
、zsh
など、どのようなシェルでもたぶん大丈夫)CコンパイラーとC++コンパイラー (
gcc
とg++
がサポート対象だが、他のコンパイラーでもたぶん大丈夫)CMake(クロスプラットフォームのビルドシステムとして利用するため)
Ninja(高速にビルドするため)
pkg-config(ライブラリを検出するため)
これらを用意してください。
あるとよいツール
sudo
(ビルドしたGroongaをインストールするため)
2.9.1.2. ライブラリー#
必須のライブラリー
Groonga 。(もしパッケージを使うなら、開発用パッケージをインストールしてください。debなら
libgroonga-dev
で、RPMならgroonga-devel
です。)
あるとよいライブラリー
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 PLUGIN
や CREATE 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