q4m のインストール

mysql の 5.1.30 で動く q4m のバイナリが現時点では無いみたいなんで、ソースから q4m をインストール。


q4mのバイナリは、http://q4m.31tools.com/dist/に置かれているが、

mysql-5.1.28-rc-linux-i686-glibc23-with-fast-mutexes-q4m-0.8.3.tar.gz

という感じの、「mysql-5.1.28」の部分がmysqlのバージョンと合致していないとダメみたいだ。*1
私が探した限りではmysql-5.1.29, 5.1.30しかバイナリが見つからず、5.1.28は入手できなかったのだ。


で、そういう場合はソースからのインストールが必要。
Q4Mをソースからインストールしてみたメモ - download_takeshi’s diary
ここを見ればそのままいけるはずなんだけど、ちょっとうちでうまくいかなかった部分をメモっておく。

まず、boost が必要なので、まず先にこれをインストールしておく。

$ apt-get install 'libboost*-dev'

また、私の環境では src/queue_cond.cc に以下の行を追加しないとコンパイルが通らなかった。(なんでだろうこれ・・・。)

#include <string.h>

でもって、configure を実行。--with-mysql に指定するのは mysql のソースディレクトリ。--prefix んは mysql のバイナリがインストールされているディレクトリ。rpm からバイナリインストールした場合は/usr/bin になるはず。make後のものでないといけないみたいだが、おそらくmysqlのソースのrpmでもいけるような気がする*2

$ ./configure --with-mysql=/home/kamei/mysql/mysql-5.1.30 --prefix=/usr/local/mysql

で、make test を通すためにはいくつか perl モジュールを入れないといけないみたいだけど、これはとりあえずパス。。。


ついでに、mysql をソースからインストールした時のオプション等を、下記。

# CFLAGS="-O3 -march=pentium4m" CXX=gcc CXXFLAGS="-O3  -march=pentium4m \
-felide-constructors -fno-exceptions -fno-rtti" ./configure \
--with-charset=utf8 \
--with-extra-charsets=all \
--enable-thread-safe-client \
--enable-local-infile \
--enable-assembler \
--with-fast-mutexes \
--with-plugins=all


$ make
$ make install

*1:まあそうじゃなかったらこういう風にバージョン違いで別バイナリになってないだろうし、おそらくそう。

*2:makeはおそらくその場合でも通しておかないとダメ。mysql はマニュアルがしっかりしていて助かる・・・。