Q4MをcentOSとosxにインストール

Q4Mをインストールするのに、ハマり倒したのでメモ書きです。僕はCentOS 5.3とosx 10.5にインストールしましたが手順はどちらも同じで以下の通りです。

  1. 既にMySQLがインストールされている場合は削除
  2. MySQLをソースコードからインストール
  3. Q4Mをインストール

1. 既にMySQLがインストールされている場合は削除
Q4Mを利用するには–with-fast-mutexesオプションが有効なMySQLがインストールされている必要がありますが、yumとかportとかでインストールしたMySQLは同オプションが有効になってないので、MySQLをソースからインストールします。そこで既にMySQLをパッケージ管理ツール等でインストールしている場合は削除します。(多分ポートの設定やサービスの登録等をすれば複数バージョンのMySQLも稼働できると思いますが、ややこしいので。)

  • CentOSの場合
    $ yum list installed | grep mysql
    $ sudo yum remove mysql
    
  • osxの場合
    port list installed | grep mysql
    sudo port deactivate mysql5 +server
    

2. MySQLをソースコードからインストール
僕はここでハマりました。大きなプログラムをソースコードからインストールした経験があまり無く、configureのオプションを付ける勘所が解らず、何回もビルドし直す羽目になりました。

試行錯誤はスキップして、手元で動作した手順は以下になります。centOSとosxで共通です。/usr/local/mysql以下にインストールしています。使用したMySQLのバージョンは5.1.39です。

$ tar zxvf mysql-5.1.39.tar.gz
$ cd mysql-5.1.39
# まずビルドとインストール
$ CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure \
--prefix=/usr/local/mysql \
--with-mysqld-user=mysql \
--enable-assembler \
--with-plugins=innobase \
--enable-shared \
--with-fast-mutexes
$ make 
$ sudo make install
# 次に初期設定 --basedirにconfigureのprefixと同じディレクトリを指定
$ cd /usr/local/mysql
$ sudo bin/mysql_install_db --basedir=/usr/local/mysql
# 起動・終了確認
$ sudo bin/mysqld_safe &
$ sudo mysqladmin shutdown

ついでにMySQLのサービス登録と自動起動設定をしておくと後々便利です。(CentOSの場合)

$ pwd
/usr/local/src/mysql-5.1.39
$ sudo cp support-files/mysql.server /etc/init.d/mysqld
$ chmod a+x /etc/init.d/mysqld
$ sudo /sbin/chkconfig -add mysqld
$ /sbin/chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

3. Q4Mをインストール
次にQ4Mをソースコードからインストールします。手順はMySQLの起動以外はcentOSとosxで共通です。

# ビルドとインストール --with-mysqlに先ほどビルドしたmysqlのソースコードがあるディレクトリを指定
$ wget http://q4m.31tools.com/dist/q4m-0.8.5.tar.gz
$ tar zxvf q4m-0.8.5.tar.gz
$ cd q4m-0.8.5
$ ./configure \
--prefix=/usr/local/mysql \
--with-mysql=/usr/local/src/mysql-5.1.39
$ make
$ sudo make install
# 初期設定
$ vim /etc/my.cnf   # log-binと、binlog_formatの行をコメントアウト
$ sudo service mysqld start # osxの場合はmysqld_safeで起動
$ mysql -u root mysql < support-files/install.sql 
$ make test  

以上でQ4Mを使う準備が整いました。mysqlにログインしてshow pluginsでインストール確認ができます。

mysql> show plugins;
+------------+--------+----------------+--------------------+---------+
| Name       | Status | Type           | Library            | License |
+------------+--------+----------------+--------------------+---------+
| binlog     | ACTIVE | STORAGE ENGINE | NULL               | GPL     |
| CSV        | ACTIVE | 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     |
+------------+--------+----------------+--------------------+---------+
7 rows in set (0.01 sec)

後はexampleディレクトリにあるcrawlerを見ると使い方が良く解りました。

2010.9.13 インストール確認方法を追記

Leave a Reply

Your email address will not be published. Required fields are marked *