隔週連載groonga

第9回mroongaを広く使ってもらうために大事なこと - mroongaのパッケージング動向の紹介

mroongaのリリースマネージャをしている林です。

mroongaはMySQL用のストレージエンジンです。すべてのMySQLユーザーに高速な全文検索機能を提供するために開発されました。

前回は環境構築時のノウハウとしてCentOS6でのRPMパッケージを用いた MySQL 5.6 & mroonga & PHP 5.4 環境の作り方を紹介しました。mroongaはビルドしたときのMySQLのバージョンに依存しているため、特定のMySQLのバージョンに合わせた構成を独自に構築したいというときには非常に参考になったのではないでしょうか。

今回は、様々な環境で提供しているmroongaについて、リリースマネージャの観点から紹介します。

リリースマネージャというお仕事

そもそも、リリースマネージャってどんなことをやっているのか、と思うかも知れません。簡単に言うと、最新版のmroongaをみなさんがインストールして使えるようにお届けする作業をしています。もう少し具体的に書くと次のようなことをリリースのたびに実施しています。

  • 前回のリリースからの変更点をまとめる
  • 新機能に対応するドキュメントを作成する
  • リリース用のパッケージのビルドと動作確認をする
  • mroonga.orgで提供している独自リポジトリを更新する
  • Webサイトのドキュメントを更新する
  • リリースアナウンスをメーリングリストに投稿する
  • リリースをtwitterでアナウンスする
  • リリースをfreecodeでアナウンスする

mroongaは特定のMySQLのバージョンに依存していますので、いざリリースしようとしたときにうまくビルドできないこともあります。また、ビルドはできますが動作させてみると問題が発覚したりすることもあります。安心して使ってもらえるようにするのがリリースマネージャの役割です。リリースする日はアナウンスを流すだけでいいように準備をするため、前日にパッケージのアップロードまで完了してようやく一息つけるようになります。

mroongaのリリースで大事にしていること

mroongaでは毎月月末の肉の日(29日)にリリースをするというのを続けています。これには一部例外もあり、今年の肉の日(2月9日)にはmroonga 3.00へのメジャーバージョンアップを果しました。

毎月定期的にリリースすることで、継続して開発されている感があります。これを続けてきたことで、肉の日には新しいバージョンがリリースされるということを認知してもらえるようになりました。また、不具合があっても、すぐに対応版をリリースすることができるという強みもあります。

もうひとつ大事にしているのは、簡単に導入できることです。そのため、様々な環境に合わせてパッケージを提供しています。

  • Debian
  • Ubuntu
  • CentOS
  • Fedora
  • Windows

環境ごとに事情が異なるため、それぞれの環境ごとのパッケージングの動向を紹介します。

Debian/Ubuntu

Debian/Ubuntuでは今年に入っていくつかのリリースのサポート開始と打ち切りがありました。

Debianでは、Debian 7.0 (wheezy)がようやく安定版としてリリースされたので、Debian 8.0 (jessie)をサポートしはじめました。Ubuntuでは、Ubuntu 13.04 (Raring Ringtail)のサポートもはじめました。一方、EOLのためサポートを打ち切ったものもあります。Ubuntu 11.10 (Oneiric Ocelot)がこれに該当します。

そのため、現在公式でサポートしているのは次の環境となります。

  • Debian 6.0 (squeeze)
  • Debian 7.0 (wheezy)
  • Debian 8.0 (jessie)
  • Debian unstable
  • Ubuntu 10.04 (Lucid)
  • Ubuntu 12.04 (Precise)
  • Ubuntu 12.10 (Quantal)
  • Ubuntu 13.04 (Raring)

それぞれの環境で対応している、MySQLのバージョンは次の通りです。

リリース MySQLのバージョン
Debian 6.0 (squeeze) 5.1.66
Debian 7.0 (wheezy) 5.5.31
Debian 8.0 (jessie) 5.5.31
Debian unstable 5.5.31
Ubuntu 10.04 (Lucid) 5.1.69
Ubuntu 12.04 (Precise) 5.5.31
Ubuntu 12.10 (Quantal) 5.5.31
Ubuntu 13.04 (Raring) 5.5.31

上記からわかるように、Debian 6.0 (squeeze)とUbuntu 10.04 (Lucid)のみがMySQL 5.1系で、残りはすべてMySQL 5.5系です。Debian/Ubuntu以外の環境でも5.5系以降が大多数となりました。

複数のバージョンに対応したmroongaをメンテナンスし続けていくのもコストがかかるため、MySQL 5.1系であるDebian 6.0 (squeeze)やUbuntu 10.04 (Lucid)はmroongaで公式にサポートする対象としてはおそらく今年中にサポート打ち切りとなる見込みです。

MariaDBがFedoraで採用されたことが話題となりましたが、mroongaプロジェクトで提供しているリポジトリにおいて、MariaDB対応mroongaのパッケージのリリース予定はいまのところありません。Debian/UbuntuにはMariaDBのパッケージがまだないのがその理由です。

とはいえ、MariaDBでmroongaを試してみたいという需要もあるかも知れません。MariaDB公式サイトで提供されているdebパッケージと一緒に使うmroongaのパッケージを用意する方法についてはMariaDB + mroongaで全文検索を実現する環境をdebパッケージで管理するにはという記事もありますので、参考にしてみてください。

CentOS

CentOSの場合、それほど動きはなく、CentOS 5.9やCentOS 6.4に追従したくらいです。

CentOS 5、CentOS 6いずれも最新のリリースのみサポートするというのも変更ありません。

それぞれの環境で対応している、MySQLのバージョンは次の通りです。

リリース MySQLのバージョン
CentOS 5.9 5.6.12
CentOS 6.4 5.1.69

CentOS 5の標準のMySQLのバージョンが5.0系と古いため、CentOS 5ではMySQL 5.6系のパッケージをmroongaのリポジトリで提供する方針にも変更はありません。mroongaにおいてMySQL 5.1系のサポートをやめたときには、CentOS 6でもCentOS 5同様にMySQL 5.6系のパッケージを一緒に提供することになるでしょう。⁠ただし具体的な時期等については未定です。)

現時点で、CentOS 5/6においてMySQL 5.5もしくはMySQL 5.6、MariaDBなどでmroongaを使いたい場合には、有志のかたが提供しているリポジトリを利用されることをおすすめします。

Fedora

Fedoraでは2013年7月のリリースからFedora 19向けにRPMパッケージを提供しています。

Fedora 19での特長としては、MySQLだけではなく、MariaDB向けのRPMパッケージも提供していることがあげられます。

Fedora 19からはMariaDBが採用されました。そのため、従来のMySQLパッケージは別名のパッケージとして提供されるようになっています。またこの変更を受けて、sudo yum install mysqlを実行したときにインストールされるのもMySQLではなく、MariaDBとなっています。

そのような事情もあり、Fedora 19向けには2系統のRPMパッケージを提供しています。

パッケージ名 対応データベース バージョン
mysql-mroonga MySQL 5.5.32
mariadb-mroonga MariaDB 5.5.31

また、公式では初のMariaDB向けのRPMパッケージの提供となります。これまでは、MariaDB対応を謳っているものの実際のパッケージは(WindowsでのMariaDBバンドルを除けば)提供していませんでした。そのため、有志の方によるリポジトリがMariaDB対応のパッケージをインストールする唯一の方法となっていました。

今後としてはmroongaをFedoraプロジェクト配下でリリースできるようにする予定です。

Fedoraプロジェクト配下でmroongaをリリースできるようになると、Fedora向けに提供している独自のリポジトリをセットアップする必要がなくなりより導入しやすくなります。

これを実現するために、関連するパッケージもFedoraプロジェクト配下でリリースできるように進めています。例えばgroongaについてはすでにFedoraプロジェクトでリリースできるようにしました。groonga-normalizer-mysqlについては一般ユーザが利用するリポジトリ(stable)にまだ入っていませんが、その前段階であるtestingリポジトリには入りました。あと2、3週間もすればtestingリポジトリでなく一般ユーザの利用するリポジトリからインストールできるようになる見込みです。そうなり次第、mroongaについても同様にリポジトリの移行を進めていく予定です。

Windows

Windowsについてはサポートがだいぶ強化され、2013年5月にテストリリースした後、7月からは毎月肉の日リリースにWindows版も加えることになりました。

現在MariaDB 10.0.3にmroongaをバンドルしたzipパッケージを提供しています(このzipパッケージではMeCab関連のファイルをバンドルしていないので、MeCabを利用するトークナイザーは利用できません⁠⁠。

従来、MariaDBのソースコードを修正する必要があったため、バンドルしたかたちで提供しています。ただ、最近になって修正が不要になったので、今後はmroongaのみ既存の構成に追加インストールするかたちで提供できれば良いと考えています。

すでにMariaDB 10.0.3をインストール済みの環境でも試したい場合には、上記zipパッケージをダウンロードして、必要なファイルをコピーすると使うことができます。zipを解凍すると次のファイルが含まれていますので、MariaDBのインストール先へとコピーします。必要なファイルは次の通りです。

  • bin/groonga.dll
  • lib/groonga/plugins/normalizers/mysql.dll
  • lib/groonga/plugins/query_expanders/tsv.dll
  • lib/groonga/plugins/suggest/suggest.dll
  • lib/groonga/plugins/table/table.dll
  • lib/plugin/ha_mroonga.dll

コピーが終わったら、スタートメニューから「MySQL Client (MariaDB 10.0 (x64))」を起動し、プラグインのインストールとUDFの登録を行います。

MariaDB > install plugin mroonga soname 'ha_mroonga';

上記を実行すると、show engines;でmroongaがインストールできていることがわかります。

次に、UDFを登録します。UDFの登録には次のクエリを実行します。

MariaDB > create function last_insert_grn_id returns integer soname 'ha_mroonga';
MariaDB > create function mroonga_snippet returns string soname 'ha_mroonga';
MariaDB > create function mroonga_command returns string soname 'ha_mroonga';

まとめ

今回は、様々な環境で提供しているmroongaについて、リリースマネージャの観点からmroongaのパッケージングの動向について紹介しました。

mroongaそのものを知りたいときには、本連載の第3回 すべてのMySQLユーザに高速な全文検索機能を! - mroongaの紹介がおすすめです。そして、では試してみようとなったらインストールガイドを参照してください。実際のインストール手順が詳しく説明されています。

次回予告

次回は事例紹介です。Tritonnからmroongaへの移行ガイド(3)になります。いよいよ移行話も大詰めです。まだ前回までの記事を読んでいない人はそれまでに過去記事をおさらいしておきましょう!

おすすめ記事

記事・ニュース一覧