MySQLにSenna(およびMeCab)を組み込んだTritonnのrpm版をインストールしてみました。
Tritonnプロジェクト
2007/10/31 mysql-5.0.45-tritonn-1.0.7 リリース
環境
WindowsXP VMware上のCentOS
# cat /proc/version
Linux version 2.6.18-8.el5 (mockbuild@builder4.centos.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Thu Mar 15 19:57:35 EDT 2007
公式サイトのインストールページにrpmについての説明も詳しく掲載されているので、そちらを参考にインストールしてみました。
RPMによるインストール方法
まずは、http://sourceforge.jp/projects/tritonn/からファイルを落としてきます。
# ll
合計 34348
-rw-rw-r-- 1 root root 326904 10月 31 2007 MySQL-client-5.0.45-tritonn.1.0.7.i386.rpm
-rw-rw-r-- 1 root root 15670977 10月 31 2007 MySQL-server-5.0.45-tritonn.1.0.7.i386.rpm
-rw-rw-r-- 1 root root 3587159 10月 31 2007 MySQL-shared-5.0.45-tritonn.1.0.7.i386.rpm
-rw-rw-r-- 1 root root 825058 10月 31 2007 mecab-0.96-tritonn.1.0.7.i386.rpm
-rw-r--r-- 1 root root 13432779 10月 31 2007 mecab-ipadic-2.7.0.20070801-tritonn.1.0.7.i386.rpm
-rw-r--r-- 1 root root 1262282 10月 31 2007 senna-1.0.9-tritonn.1.0.7.i386.rpm
次に現状、インストール済のパッケージを調べると、以下が入っていました。
# rpm -qa | grep -i mysql
MySQL-python-1.2.1-1
mysql-server-5.0.22-2.1
mysql-5.0.22-2.1
perl-DBD-MySQL-3.0007-1.fc6
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-connector-odbc-3.51.12-2.2
php-mysql-5.1.6-12.el5
公式サイトの記述を鵜呑みにしてそのままコマンドを流すとこんなことに。
# rpm -e MySQL-server
エラー: パッケージ MySQL-server はインストールされていません。
インストール済のパッケージは小文字だから大文字じゃだめですね。
# rpm -e mysql-server
なんも帰ってこなかったので削除できたのかと思ってしまいました。
※これでは、削除できていなかったのですが、作業手順のままに書いてみます。
mysql-server-5.0.22-2.1の削除はこれで完了。
※mysql-5.0.22-2.1も削除する必要がありましたが、作業手順のままに書いてみます。(追記:mysql-serverのみ削除したたのを勘違いしてたみたいです)
次にmecabからインストール。
rpm -i だけではちょっとさびしいかなぁと思い、vhを付けてみました。
rpm -ivh mecab-0.96-tritonn.1.0.7.i386.rpm
rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.7.i386.rpm
rpm -ivh senna-1.0.9-tritonn.1.0.7.i386.rpm
rpm -ivh MySQL-shared-5.0.45-tritonn.1.0.7.i386.rpm
rpm -ivh MySQL-client-5.0.45-tritonn.1.0.7.i386.rpm
rpm -ivh MySQL-server-5.0.45-tritonn.1.0.7.i386.rpm
すると、以下のような警告がわらわら・・・
まぁ、入ったようなのでOKでしょうか?
# rpm -ivh mecab-0.96-tritonn.1.0.7.i386.rpm
準備中... ########################################### [100%]
1:mecab 警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
########################################### [100%]
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
続けて次のインストール。
# rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.7.i386.rpm
準備中... ########################################### [100%]
1:mecab-ipadic 警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
########################################### [100%]
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
こちらも警告が・・
次に sennaのインストール
# rpm -ivh senna-1.0.9-tritonn.1.0.7.i386.rpm
準備中... ########################################### [100%]
1:senna 警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
警告: ユーザ mir は存在しません - root を使用します
警告: グループ mir は存在しません - root を使用します
########################################### [100%]
インストールできているようですが、始めて見るとちょっとびっくりしちゃいました。
次に MySQL関連のインストール。
# rpm -ivh MySQL-shared-5.0.45-tritonn.1.0.7.i386.rpm
準備中... ########################################### [100%]
1:MySQL-shared ########################################### [100%]
こちらはさくっと入りました。
次に、MySQL-client
# rpm -ivh MySQL-client-5.0.45-tritonn.1.0.7.i386.rpm
準備中... ########################################### [100%]
ファイル /usr/bin/msql2mysql (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysql (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysql_find_rows (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysql_waitpid (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysqlaccess (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysqladmin (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysqlbinlog (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysqlcheck (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysqldump (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysqlimport (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/bin/mysqlshow (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/share/man/man1/mysql.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/share/man/man1/mysqlaccess.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/share/man/man1/mysqladmin.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/share/man/man1/mysqldump.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
ファイル /usr/share/man/man1/mysqlshow.1.gz (パッケージ MySQL-client-5.0.45-tritonn.1.0.7 から) は、パッケージ mysql-5.0.22-2.1 からのファイルと競合して
エラーです。
なぜ??と思ったら、どうやら元から入っているのが削除できていなかったようです。
再度、パッケージ調査。
# rpm -qa | grep -i mysql
MySQL-python-1.2.1-1
mysql-5.0.22-2.1
perl-DBD-MySQL-3.0007-1.fc6
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-connector-odbc-3.51.12-2.2
php-mysql-5.1.6-12.el5
やっぱり削除できていません。
パッケージをバージョンまで指定して rpm -eしてみる。
# rpm -e mysql-5.0.22-2.1
エラー: 依存性の欠如:
mysql は (インストール済み)MySQL-python-1.2.1-1.i386 に必要とされています
mysql は (インストール済み)libdbi-dbd-mysql-0.8.1a-1.2.2.i386 に必要とされています
なんか依存関連のエラーです。とりあえず、pythonとか使ってないので、何も考えずに削除。
# rpm -e MySQL-python-1.2.1-1 libdbi-dbd-mysql-0.8.1a-1.2.2 mysql-5.0.22-2.1
で、確認
# rpm -qa | grep -i mysql
perl-DBD-MySQL-3.0007-1.fc6
mysql-connector-odbc-3.51.12-2.2
MySQL-shared-5.0.45-tritonn.1.0.7
php-mysql-5.1.6-12.el5
無事削除できたようです。
# rpm -ivh MySQL-client-5.0.45-tritonn.1.0.7.i386.rpm
準備中... ########################################### [100%]
1:MySQL-client ########################################### [100%]
続いてserver
# rpm -ivh MySQL-server-5.0.45-tritonn.1.0.7.i386.rpm
準備中... ########################################### [100%]
1:MySQL-server ########################################### [100%]
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h marudev.fact password 'new-password'
See the manual for more instructions.
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
Starting MySQL.[ OK ]
Thank you for installing the MySQL Community Server! For Production
systems, we recommend MySQL Enterprise, which contains enterprise-ready
software, intelligent advisory services, and full production support with
scheduled service packs and more. Visit www.mysql.com/enterprise for more
information.
無事、インストール完了したみたいです。
次に動作確認
# /etc/init.d/mysql start
Starting MySQL [ OK ]
# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45-modified MySQL Community Server (GPL) (portions (c) Tritonn Project)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
ちゃんと「portions (c) Tritonn Project」と出てました。
show senna statusの確認もOKでした。
mysql> show senna status\\G
*************************** 1. row ***************************
Table: t1
Key_name: fulltext_index
Column_name: body
Encoding: utf8
Index_type: NGRAM
Sectionalize: OFF
Normalize: ON
Split_alpha: OFF
Split_digit: OFF
Split_symbol: OFF
Initial_n_segments: 512
Senna_keys_size: 2
Senna_keys_file_size: 8462336
Senna_lexicon_size: 14
Senna_lexicon_file_size: 8462336
Senna_inv_seg_size: 2265088
Senna_inv_chunk_size: 135168
1 row in set (0.00 sec)
mysql>
初めてのTritonn(チュートリアル)を見ながら、少しいじってみました。
ちゃんと動いているみたいです。
全文検索というぐらいですから、データ元が無いと威力が発揮できません。
今後、仕事でも個人でも使う場面が出てくると思いますので、いろいろデータぶちこんで試していきたいと思います。
追記(2007-11-06)
Twitterで他の方が話していた内容ですが、日本語ではない場合には以下のようなエラーが起きるみたいです。
warning: user mir does not exist - using root warning: group mir does not exist - using root
追記2(2007-11-06)
rpmを作った時のユーザ情報等が入ってしまっているそうです。
回避方法がtritonn-dev MLで流れていましたので、リビルド版を追加/置換リリースするかもとのことでした。