Q4MをCentOS5.5 x86_64でRPM化してセットアップを楽にする

もうバイナリ版をcp -pするのは嫌だ、ということでRPM化してセットアップを楽にしたい。
手順は完全にzigorou先生の↓準拠
q4m を rpm 化する with checkinstall - Yet Another Hackadelic

MySQLのsrc.rpmを取得

Q4Mコンパイルに必要なので。

# cd /usr/src/redhat/SRPMS
# wget http://www.mysql.com/get/Downloads/MySQL-5.1/MySQL-community-5.1.50-1.rhel5.src.rpm/from/http://ftp.jaist.ac.jp/pub/mysql/

rpmbuild --recompile

ここもzigorouさんの通り…。必要なものは事前にyumでいれる。

# yum install gperf readline-devel ncurses-devel
# rpmbuild --recompile --define 'community 1' /usr/src/redhat/SRPMS/MySQL-community-5.1.50-1.rhel5.src.rpm

Q4Mrpm

したいので、まずはcheckinstallを導入。

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

MySQLをインストール
この手順はこちらを参考にした
Q4M on CentOS - dragon3の日記

# cd /usr/local/src
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-server-community-5.1.50-1.rhel5.x86_64.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-client-community-5.1.50-1.rhel5.x86_64.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-devel-community-5.1.50-1.rhel5.x86_64.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-shared-community-5.1.50-1.rhel5.x86_64.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/
# rpm -ivh MySQL-*

そして本命Q4M。バージョンは最新版を使用。
libdirの指定をしないと/usr/lib下にインストールされてしまって、結局それをcpする必要がでたので、pluginを指定。maintainerはよしなに。

# cd /usr/local/src
# wget http://q4m.31tools.com/dist/q4m-0.9.4.tar.gz
# tar xfz q4m-0.9.4.tar.gz
# cd q4m-0.9.4

>ERROR: ld.so: object '/usr/local/lib64/installwatch.so' from LD_PRELOAD cannot be preloaded: ignored.
#上記エラー回避のため...checkinstallさん...これぐらいなんとかしていただきたい。
# ln -s /usr/local/lib/installwatch.so /usr/local/lib64/installwatch.so 
# ./configure --prefix=/usr --with-mysql=/usr/src/redhat/BUILD/mysql-5.1.50 --libdir=/usr/lib64/mysql/plugin
# checkinstall -R --pkgname q4m --pkgversion 0.9.4 \
  ---pkgrelease mysql_5.1.50 --pkggroup Applications/Databases \
  --maintainer hoge@mail.com \
  make install

できた!

**********************************************************************

 Done. The new package has been saved to

 /usr/src/redhat/RPMS/x86_64/q4m-0.9.4-mysql_5.1.50.x86_64.rpm
 You can install it in your system anytime using:

      rpm -i q4m-0.9.4-mysql_5.1.50.x86_64.rpm

**********************************************************************

なんて長い道のりだったんだ…。インストール、そしてメッセージにでる通りQUEUEエンジンを有効にします。

# mysql -u root  < support-files/install.sql

INSTALL PLUGIN queue SONAME 'libqueue_engine.so';
CREATE FUNCTION queue_wait RETURNS INT SONAME 'libqueue_engine.so';
CREATE FUNCTION queue_end RETURNS INT SONAME 'libqueue_engine.so';
CREATE FUNCTION queue_abort RETURNS INT SONAME 'libqueue_engine.so';
CREATE FUNCTION queue_rowid RETURNS INT SONAME 'libqueue_engine.so';
CREATE FUNCTION queue_set_srcid RETURNS INT SONAME 'libqueue_engine.so';

後は動作確認ですが、割愛。

失敗編はこちら
★失敗編★Q4MをCentOS5.3 x86_64でRPM化してセットアップを楽に!しようと思ったらはまった - /var/log/dekaduki