MySQL + Q4Mインストール

Q4Mを使ってみようと思い立ったが、まずはMySQLをソースからインストールする必要がありそう。
そもそも、ソースインストールやRPM化をしたことがないので、ハードル高そう(爆)
http://d.hatena.ne.jp/dekaduki/20100209/1265718676
に書いてあることをそのままなぞってみることにする。

環境

準備

Q4Mを使うにはMySQLは5.1系(以上?)が必要らしいが、手元あるのは5.0系。
まずはアンインストール。

rpm -qa | grep MySQL
rpm -e MySQL-devel-community-5.0.84-0.rhel4
rpm -e MySQL-client-community-5.0.84-0.rhel4
rpm -e MySQL-shared-community-5.0.84-0.rhel4

必要なライブラリをインストールしておく

sudo yum install rpm-build gperf readline-devel ncurses-devel

checkinstallをインストール

cd /usr/local/src
wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
tar xfvz checkinstall-1.6.2.tar.gz
cd checkinstall-1.6.2
make
make install

うまくいった。

src.rpmを取ってくる

cd /usr/src/redhat/SRPMS
wget http://downloads.mysql.com/archives/mysql-5.1/MySQL-community-5.1.42-0.rhel4.src.rpm

コンパイル

rpmbuild --recompile --define 'community 1' /usr/src/redhat/SRPMS/MySQL-community-5.1.42-0.rhel4.src.rpm
/usr/src/redhat/SRPMS/MySQL-community-5.1.42-0.rhel4.src.rpm をインストール中
警告: user mysqldev does not exist - using root
警告: group mysqldev does not exist - using root
警告: user mysqldev does not exist - using root
警告: group mysqldev does not exist - using root

警告が出たので中止してuser/groupを追加

groupadd mysqldev
useradd -g mysqldev mysqldev

再挑戦する。

rpmbuild --recompile --define 'community 1' /usr/src/redhat/SRPMS/MySQL-community-5.1.42-0.rhel4.src.rpm
/usr/src/redhat/SRPMS/MySQL-community-5.1.42-0.rhel4.src.rpm をインストール中

今度はうまくいった。けっこう古いマシンなので3時間くらいかかった。

MySQL5.1.42インストール

取ってくる。

cd /usr/local/src
wget http://downloads.mysql.com/archives/mysql-5.1/MySQL-client-community-5.1.42-0.rhel4.i386.rpm
wget http://downloads.mysql.com/archives/mysql-5.1/MySQL-server-community-5.1.42-0.rhel4.i386.rpm
wget http://downloads.mysql.com/archives/mysql-5.1/MySQL-shared-community-5.1.42-0.rhel4.i386.rpm
wget http://downloads.mysql.com/archives/mysql-5.1/MySQL-devel-community-5.1.42-0.rhel4.i386.rpm

rpmでインストール。

rpm -ivh MySQL-devel-community-5.1.42-0.rhel4.i386.rpm
rpm -ivh MySQL-shared-community-5.1.42-0.rhel4.i386.rpm
rpm -ivh MySQL-server-community-5.1.42-0.rhel4.i386.rpm
rpm -ivh MySQL-client-community-5.1.42-0.rhel4.i386.rpm
mysql

接続できた!!

いよいよQ4M

ここまで長かった〜。あと一息。ソースを取得して、早速configure。

cd /usr/local/src
wget http://q4m.31tools.com/dist/q4m-0.9.2.tar.gz
tar xzvf q4m-0.9.2.tar.gz
cd q4m-0.9.2
./configure --prefix=/usr --with-mysql=/usr/src/redhat/BUILD/mysql-5.1.42

んが、ここでconfigureでエラーになった

checking size of int*... configure: error: cannot compute sizeof (int*), 77
See `config.log' for more details.

http://www.infosia.co.jp/posts/249を参考にconfigureファイルを修正する

then
    #LDFLAGS="-Wl,--hash-style=both"
    LDFLAGS=""
fi

再びconfigureにトライ

./configure --prefix=/usr --with-mysql=/usr/src/redhat/BUILD/mysql-5.1.42

今度はうまくいった!

Q4MをRPM化
#/usr/local/sbin/checkinstall -R --pkgname q4m --pkgversion 0.9 \
   --pkgrelease 0.glibc23 --pkggroup Applications/Databases \
   --maintainer kotaroito@****.com \
   make MYSQL_LIBDIR=/usr/lib install
 Done. The new package has been saved to

 /usr/src/redhat/RPMS/i386/q4m-0.9-0.glibc23.i386.rpm
 You can install it in your system anytime using:

      rpm -i q4m-0.9-0.glibc23.i386.rpm

キター!!

RPMからインストール

perl-DBIを入れておかないと怒られる

yum install perl-DBI
rpm -ivh /usr/src/redhat/RPMS/i386/q4m-0.9-0.glibc23.i386.rpm
queueプラグインを有効に
mysql -u root -f mysql < support-files/install.sql

テスト

mysqlに入ってから以下を実行。

mysql> show plugins;
+------------+----------+----------------+--------------------+---------+
| Name       | Status   | Type           | Library            | License |
+------------+----------+----------------+--------------------+---------+
| binlog     | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| partition  | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| ARCHIVE    | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| BLACKHOLE  | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| CSV        | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| FEDERATED  | DISABLED | STORAGE ENGINE | NULL               | GPL     |
| MEMORY     | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| InnoDB     | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| MyISAM     | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| MRG_MYISAM | ACTIVE   | STORAGE ENGINE | NULL               | GPL     |
| QUEUE      | ACTIVE   | STORAGE ENGINE | libqueue_engine.so | GPL     |
+------------+----------+----------------+--------------------+---------+
11 rows in set (0.03 sec)

キター!!!!!!!!!!!

付属のrun_test.pl
DBI='dbi:mysql:database=test;host=localhost;port=3307' ./run_tests.pl

通った!!

まとめ

  • 時間かかったけど、インストールできた!
  • RPMにする流れもわかった
  • checkinstallは後日詳しく調べておきたい