Posted at

MariaDB + mroongaで全文検索を実現する環境をdebパッケージで管理するには

More than 5 years have passed since last update.


もっとgroongaを知ってもらおう!ということで週刊groongaをはじめました。毎週木曜にgroongaやmroonga、rroongaのトピックを投稿予定です。


gihyo.jpさんでgroongaの隔週更新連載が始まっています。第8回の記事も公開されたので、一読をおすすめします。

第1回から第7回までの過去記事については、隔週連載groongaのページを参照してください。


はじめに

MySQLで高速に全文検索するためのオープンソースのストレージエンジンとしてmroonga (むるんが)を公開しています。

最新のバージョンは2013年7月29日にリリースした3.06です。

Fedora 19ではMariaDBを採用したことが話題になりましたが、Debian/Ubuntuでは依然としてMySQLが標準として使われています。MariaDBに切り替えたいけど、mroongaのパッケージがないのでちょっとためらっているという人がいるかも知れません。今回は、UbuntuでMariaDBに対応したmroongaをパッケージでインストールする方法を紹介します。


MariaDBのインストール

まずは、MariaDBをインストールしてしまいましょう。MariaDB自体は公式サイトからパッケージをインストールできるようになっています。Installing MariaDB .deb Filesとしてインストール方法が紹介されています。

Setting up MariaDB RepositoriesにアクセスするとUbuntuに限らず、ウィザード形式で環境に応じた手順が表示されるようになっています。



  • 1. Choose a DistroUbuntu を選択する


  • 2. Choose a Release13.04 "raring" を選択する


  • 3. Choose a Version10.0 を選択する


  • 4. Choose a Mirror山形大学 を選択する

上記でUbuntu 13.04で10.0をインストールするときの手順を参照することができます。

次に以下のコマンドを実行します。

sudo apt-get install software-properties-common

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.0/ubuntu raring main'

リポジトリを登録することができたら、あとはいつものようにaptを使ってMariaDBをインストールします。

sudo apt-get update

sudo apt-get install mariadb-server


MariaDBのソースアーカイブを準備する

mroongaはビルドしたときのMySQLのバージョンに強く依存しているので、MariaDBに切り替えるなら、同じようにMariaDBのソースアーカイブが必要です。

任意のディレクトリへとアーカイブを展開し、事前にmysql_configスクリプトが実行できるようにしておきます。

% tar xf mariadb-10.0.3.tar.gz

% cd mariadb-10.0.3
% cmake -G "Unix Makefiles" .


mroongaのパッケージのビルド

MariaDBのアーカイブの準備ができたので、今度はmroongaのパッケージをビルドします。

mroongaのソースアーカイブをダウンロード展開した後、パッケージをビルドするのに必要なファイル一式をまとめたmariadb-mroonga-debian.tar.gzもあわせてダウンロード、展開します。

% wget http://packages.groonga.org/source/mroonga/mroonga-3.06.tar.gz

% tar xf mroonga-3.06.tar.gz
% cd mroonga-3.06
% wget http://packages.groonga.org/tmp/mariadb-mroonga-debian.tar.gz
% tar xf mariadb-mroonga-debian.tar.gz

次に、mroonga-3.06/debian/rulesファイルを環境に合わせて変更します。MariaDBのソースアーカイブを展開したディレクトリをご自分の環境に合わせて変更してください。

override_dh_auto_configure:

dh_auto_configure -- --with-mysql-source=$$HOME/work/mariadb/mariadb-10.0.3

最後にパッケージをビルドします。

% debuild -uc -us

パッケージのビルドに成功すると、debファイルが作成されているはずです。

% ls ..

mariadb-server-mroonga-doc_3.06-1_all.deb
mariadb-server-mroonga_3.06-1_amd64.deb


mroongaをインストールする

次に、mroongaパッケージをインストールします。

% sudo dpkg -i ../mariadb-server-mroonga_3.06-1_amd64.deb

インストールできたか確認してみましょう。

% mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 47
Server version: 10.0.3-MariaDB-1~raring-log mariadb.org binary distribution

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| SPHINX | YES | Sphinx storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| mroonga | YES | CJK-ready fulltext search, column store | NO | NO | NO |
| FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
12 rows in set (0.00 sec)

mroongaがストレージエンジンとして認識されていることがわかります。


まとめ

今回は、UbuntuでMariaDBに対応したmroongaをパッケージでインストールする方法について紹介してみました。

mroongaの基本的な動作を知るためのユーザガイドもあります。インストールしたら試してみてください。