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
キター!!
テスト
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)
キター!!!!!!!!!!!
まとめ
- 時間かかったけど、インストールできた!
- RPMにする流れもわかった
- checkinstallは後日詳しく調べておきたい