CentOS5.5上にMySQLとgroongaをインストールする方法

CentOS5.5上にgroongaをyumで公式の通りインストールしようとするとエラーがでます。

解決のために、いくつか調整したので、経緯を載せておきます。

今回は次の3つを試しました。

  1. MySQL5.1.53のインストール
  2. groonga-1.0.5-1のインストール
  3. mysql-groonga-0.4-1のインストール

このうち1と2は成功しました。

3は現在も調整中です。(MySQLを5.5にした版は後述)

長くなりますが、1と2を追ってみます。

レポジトリ確認

レポジトリを追加して、内容をチェック。

# rpm -ivh http://packages.groonga.org/centos/groonga-repository-1.0.0-0.noarch.rpm
# yum update
# yum list | grep MySQL

MySQL-client-community.x86_64              5.1.53-1.rhel5              groonga
MySQL-devel-community.x86_64               5.1.53-1.rhel5              groonga
MySQL-embedded-community.x86_64            5.1.53-1.rhel5              groonga
MySQL-python.x86_64                        1.2.1-1                     base
MySQL-server-community.x86_64              5.1.53-1.rhel5              groonga
MySQL-shared-community.x86_64              5.1.53-1.rhel5              groonga
MySQL-test-community.x86_64                5.1.53-1.rhel5              groonga
perl-DBD-MySQL.x86_64                      3.0007-2.el5                base
qt-MySQL.x86_64                            1:3.3.6-23.el5              base

MySQLが5.1で揃っています。(デフォルトで入っていたMySQL5.0.77は削除しています。)

性能が改善しているINNODBも使いたいので、5.1バージョンをインストールしたい。


早速個別にやってみると、いくつかエラーがありましたが、次のように直していきました。

順に追っていきます。

groongaレポジトリからのMySQLyumインストールする場合のエラー

# yum -y install MySQL-client-community
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
 * addons: ftp.nara.wide.ad.jp
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package MySQL-client-community.x86_64 0:5.1.53-1.rhel5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================
 Package                                    Arch                       Version                               Repository                   Size
===============================================================================================================================================
Installing:
 MySQL-client-community                     x86_64                     5.1.53-1.rhel5                        groonga                     7.2 M

Transaction Summary
===============================================================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 7.2 M
Downloading Packages:
MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm                                                                        | 7.2 MB     00:02
warning: rpmts_HdrFromFdno: Header V4 DSA signature: NOKEY, key ID 1c837f31
groonga/gpgkey                                                                                                          |  23 kB     00:00
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 309, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 261, in main
    return_code = base.doTransaction()
  File "/usr/share/yum-cli/cli.py", line 410, in doTransaction
    if self.gpgsigcheck(downloadpkgs) != 0:
  File "/usr/share/yum-cli/cli.py", line 510, in gpgsigcheck
    self.getKeyForPackage(po, lambda x, y, z: self.userconfirm())
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3476, in getKeyForPackage
    keys = self._retrievePublicKey(keyurl, repo)
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3441, in _retrievePublicKey
    keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
  File "/usr/lib/python2.4/site-packages/yum/misc.py", line 375, in getgpgkeyinfo
    raise ValueError(str(e))
ValueError: pgp packet 49 is not user id or subkey, is public-key certificate packet

公開鍵での認証が異なると出ている。困った。


強引ですが直接参照してやってみよう。

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm

Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm
warning: /var/tmp/rpm-xfer.O2hekW: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:MySQL-client-community ########################################### [100%]

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-devel-community-5.1.53-1.rhel5.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-devel-community-5.1.53-1.rhel5.x86_64.rpm
warning: /var/tmp/rpm-xfer.4N99xP: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:MySQL-devel-community  ########################################### [100%]

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-embedded-community-5.1.53-1.rhel5.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-embedded-community-5.1.53-1.rhel5.x86_64.rpm
warning: /var/tmp/rpm-xfer.VytlKR: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:MySQL-embedded-communit########################################### [100%]

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-server-community-5.1.53-1.rhel5.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-server-community-5.1.53-1.rhel5.x86_64.rpm
warning: /var/tmp/rpm-xfer.EQku8n: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:MySQL-server-community ########################################### [100%]

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-shared-community-5.1.53-1.rhel5.x86_64.rpm

Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-shared-community-5.1.53-1.rhel5.x86_64.rpm
warning: /var/tmp/rpm-xfer.ubTt4f: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:MySQL-shared-community ########################################### [100%]


# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-test-community-5.1.53-1.rhel5.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-test-community-5.1.53-1.rhel5.x86_64.rpm
warning: /var/tmp/rpm-xfer.GwnXiw: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:MySQL-test-community   ########################################### [100%]

できました。警告は出ていますが。。。

groongaレポジトリからのgroongaをyumインストールする場合のエラー

groongaをyumでインストールしてみましょう。

そのままやると、下のようなエラーが出ます。

# yum -y install groonga
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
 * addons: ftp.nara.wide.ad.jp
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package groonga.x86_64 0:1.0.5-1 set to be updated
--> Processing Dependency: groonga-libs = 1.0.5-1 for package: groonga
--> Processing Dependency: libgroonga.so.0()(64bit) for package: groonga
--> Running transaction check
---> Package groonga-libs.x86_64 0:1.0.5-1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================
 Package                               Arch                            Version                          Repository                        Size
===============================================================================================================================================
Installing:
 groonga                               x86_64                          1.0.5-1                          groonga                          102 k
Installing for dependencies:
 groonga-libs                          x86_64                          1.0.5-1                          groonga                          2.3 M

Transaction Summary
===============================================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 2.4 M
Downloading Packages:
(1/2): groonga-1.0.5-1.x86_64.rpm                                                                                       | 102 kB     00:00
(2/2): groonga-libs-1.0.5-1.x86_64.rpm                                                                                  | 2.3 MB     00:00
-----------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                          2.1 MB/s | 2.4 MB     00:01
warning: rpmts_HdrFromFdno: Header V4 DSA signature: NOKEY, key ID 1c837f31
groonga/gpgkey                                                                                                          |  23 kB     00:00
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 309, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 261, in main
    return_code = base.doTransaction()
  File "/usr/share/yum-cli/cli.py", line 410, in doTransaction
    if self.gpgsigcheck(downloadpkgs) != 0:
  File "/usr/share/yum-cli/cli.py", line 510, in gpgsigcheck
    self.getKeyForPackage(po, lambda x, y, z: self.userconfirm())
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3476, in getKeyForPackage
    keys = self._retrievePublicKey(keyurl, repo)
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3441, in _retrievePublicKey
    keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
  File "/usr/lib/python2.4/site-packages/yum/misc.py", line 375, in getgpgkeyinfo
    raise ValueError(str(e))
ValueError: pgp packet 49 is not user id or subkey, is public-key certificate packet


先ほどと同じく直接参照してみましょう。

groongaの依存関係の修復

groonga-libsがないとエラーが出る。

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-1.0.5-1.x86_64.rpm

Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-1.0.5-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.6ujU7a: Header V4 DSA signature: NOKEY, key ID 1c837f31
error: Failed dependencies:
        groonga-libs = 1.0.5-1 is needed by groonga-1.0.5-1.x86_64
        libgroonga.so.0()(64bit) is needed by groonga-1.0.5-1.x86_64

libsから入れます。

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-libs-1.0.5-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-libs-1.0.5-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.lo4S1m: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:groonga-libs           ########################################### [100%]


# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-1.0.5-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-1.0.5-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.VB3XlS: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:groonga                ########################################### [100%]

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-devel-1.0.5-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-devel-1.0.5-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.od5kAd: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:groonga-devel          ########################################### [100%]

すべてインストールできました。

次はgroonga-tokenizer-mecab

mecabはソースでいれてあったので、いいかなと思ったのでしたが、やっぱり依存で問題がありました。

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-tokenizer-mecab-1.0.5-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-tokenizer-mecab-1.0.5-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.3dggk1: Header V4 DSA signature: NOKEY, key ID 1c837f31
error: Failed dependencies:
        libmecab.so.1()(64bit) is needed by groonga-tokenizer-mecab-1.0.5-1.x86_64
        mecab is needed by groonga-tokenizer-mecab-1.0.5-1.x86_64

mecabrpmで入れます。

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/mecab-0.98-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/mecab-0.98-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.V1O83E: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:mecab                  ########################################### [100%]


# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/mecab-devel-0.98-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/mecab-devel-0.98-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.9lEcse: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:mecab-devel            ########################################### [100%]

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/mecab-ipadic-2.7.0.20070801-3.1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/mecab-ipadic-2.7.0.20070801-3.1.x86_64.rpm
warning: /var/tmp/rpm-xfer.6vsXjO: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:mecab-ipadic           ########################################### [100%]

さいごにroonga-tokenizer-mecabを入れます。

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-tokenizer-mecab-1.0.5-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-tokenizer-mecab-1.0.5-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.UIVXwz: Header V4 DSA signature: NOKEY, key ID 1c837f31
Preparing...                ########################################### [100%]
   1:groonga-tokenizer-mecab########################################### [100%]


tokenizerのインストール成功です。

テストしてみましょう。

groongaのテスト
# groonga -n /var/tmp/test
> # groonga /var/tmp/test
> status
[[0,1293664122.8894,0.000178],{"alloc_count":122,"starttime":1293664121,"uptime":1,"version":"1.0.5","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]

できていることが確認できました。

MySQLとの連携は次回(追伸に補記)。

追伸 MySQLとの連携

単体のgroongaを入れて、MySQLも用意できました。

その後、ストレージエンジンをMySQLに追加しようとして、mysql-groongaをRPMで入れようとしたら、
依存関係(dependencies)でエラーが出ます。

# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/mysql-groonga-0.4-1.x86_64.rpm

Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/mysql-groonga-0.4-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.XvFszz: Header V4 DSA signature: NOKEY, key ID 1c837f31
error: Failed dependencies:
        MySQL-client-community = 5.1.53-1 is needed by mysql-groonga-0.4-1.x86_64
        MySQL-server-community = 5.1.53-1 is needed by mysql-groonga-0.4-1.x86_64

MySQL-cliendとMySQL-serverが必要とある。

現在の状況を確認。

# rpm -qa | grep MySQL*

MySQL-client-community-5.1.53-1.rhel5
MySQL-shared-community-5.1.53-1.rhel5
MySQL-devel-community-5.1.53-1.rhel5
MySQL-server-community-5.1.53-1.rhel5
MySQL-test-community-5.1.53-1.rhel5
MySQL-embedded-community-5.1.53-1.rhel5

きちんとMySQL-client-community5.1.53-1とMySQL-server-community5.1.53-1は入っているのですが。。。
謎です。

RPMはあきらめて、ソースで入れ直そうかな。。。


第一部 完

追伸2 MySQL5.5とmysql-groongaを入れます。

ここからが本当の戦いだったりします。

yumのレポジトリを、コメントのご指摘により更新していただいたので、
再インストールしてみました。

# rpm -Uvh --force http://packages.groonga.org/centos/groonga-repository-1.0.0-0.noarch.rpm
Retrieving http://packages.groonga.org/centos/groonga-repository-1.0.0-0.noarch.rpm
Preparing...                ########################################### [100%]
   1:groonga-repository     ########################################### [100%]


ストレージエンジンmysql-groongaを入れます。

# yum install mysql-groonga
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
 * addons: ftp.iij.ad.jp
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-groonga.x86_64 0:0.4-2 set to be updated
--> Processing Dependency: MySQL-client = 5.5.8-1 for package: mysql-groonga
--> Processing Dependency: MySQL-server = 5.5.8-1 for package: mysql-groonga
--> Processing Dependency: groonga-libs for package: mysql-groonga
--> Processing Dependency: libgroonga.so.0()(64bit) for package: mysql-groonga
--> Running transaction check
---> Package MySQL-client.x86_64 0:5.5.8-1.rhel5 set to be updated
---> Package MySQL-server.x86_64 0:5.5.8-1.rhel5 set to be updated
---> Package groonga-libs.x86_64 0:1.0.6-1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================
 Package                   Arch               Version                    Repository           Size
===================================================================================================
Installing:
 mysql-groonga             x86_64             0.4-2                      groonga             263 k
Installing for dependencies:
 MySQL-client              x86_64             5.5.8-1.rhel5              groonga              17 M
 MySQL-server              x86_64             5.5.8-1.rhel5              groonga              51 M
 groonga-libs              x86_64             1.0.6-1                    groonga             2.3 M

Transaction Summary
===================================================================================================
Install       4 Package(s)
Upgrade       0 Package(s)

Total download size: 71 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): mysql-groonga-0.4-2.x86_64.rpm                                       | 263 kB     00:00
(2/4): groonga-libs-1.0.6-1.x86_64.rpm                                      | 2.3 MB     00:00
(3/4): MySQL-client-5.5.8-1.rhel5.x86_64.rpm                                |  17 MB     00:04
(4/4): MySQL-server-5.5.8-1.rhel5.x86_64.rpm                                |  51 MB     00:05
---------------------------------------------------------------------------------------------------
Total                                                              6.7 MB/s |  71 MB     00:10
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : MySQL-client                                                                1/4
  Installing     : groonga-libs                                                                2/4
  Installing     : MySQL-server                                                                3/4
ERROR: 1136  Column count doesn't match value count at row 1
101231 12:25:41 [ERROR] Aborting

101231 12:25:41 [Note] /usr/sbin/mysqld: Shutdown complete


Installation of system tables failed!  Examine the logs in
/var/lib/mysql for more information.

You can try to start the mysqld daemon with:

    shell> /usr/sbin/mysqld --skip-grant &

and use the command line tool /usr/bin/mysql
to connect to the mysql database and look at the grant tables:

    shell> /usr/bin/mysql -u root mysql
    mysql> show tables

Try 'mysqld --help' if you have problems with paths.  Using --log
gives you a log in /var/lib/mysql that may be helpful.

Please consult the MySQL manual section
'Problems running mysql_install_db', and the manual section that
describes problems on your OS.  Another information source are the
MySQL email archives available at http://lists.mysql.com/.

Please check all of the above before mailing us!  And remember, if
you do mail us, you MUST use the /usr/bin/mysqlbug script!

  Installing     : mysql-groonga                                                               4/4
/usr/bin/mysql -u root -e " INSTALL PLUGIN groonga SONAME 'ha_groonga.so'; CREATE FUNCTION last_insert_grn_id RETURNS INTEGER soname 'ha_groonga.so'; "
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
run the following command to register groonga storage engine:
  /usr/bin/mysql -u root -e "
INSTALL PLUGIN groonga SONAME 'ha_groonga.so';
CREATE FUNCTION last_insert_grn_id RETURNS INTEGER soname 'ha_groonga.so';
"

Installed:
  mysql-groonga.x86_64 0:0.4-2

Dependency Installed:
  MySQL-client.x86_64 0:5.5.8-1.rhel5              MySQL-server.x86_64 0:5.5.8-1.rhel5
  groonga-libs.x86_64 0:1.0.6-1

Complete!


とりあえず、インストールは完了しました。

これから設定をしていきます。