わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

UbuntuでTritonn

MySQLのデータは,登録プログラムをRubyで書いていたので*1,新サーバでそれを走らせました.

サーバ交換メモ(2) - わさっき

今月に入って,動作確認をしようとしたら,まったく動きません.MySQLサーバが起動してなさそうです.パッケージを見ると,mysql-commonやphp5-mysqlは入れていますが,本体はインストールしていません.
Ludiaに食指が動くとはいえ,Tritonnはまだまだ基幹の全文検索エンジンです.ということで,ソースからのインストールをやり直しました.
過去にGentooでTritonn - わさっきというのを書いていますが,本日はコマンド中心です.

準備

mysqlのビルドの際にcursesが求められるので,入れておきます.

# apt-get install libncurses5 libncurses5-dev

MeCabの辞書をUTF-8にしておきます.やり方は,acts_as_ludiaをRailsなしで使う - わさっきに書いたとおりです.

SennaTritonnをインストール

$ cd (適当なところ)
$ wget http://osdn.dl.sourceforge.jp/senna/31533/senna-1.1.3.tar.gz
$ wget http://keihanna.dl.sourceforge.jp/tritonn/31597/tritonn-1.0.10-mysql-5.0.51a.tar.gz
$ tar xzf senna-1.1.3.tar.gz
$ cd senna-1.1.3
$ ls
$ ./configure
$ make
# make install
$ cd ..
$ tar xzf tritonn-1.0.10-mysql-5.0.51a.tar.gz
$ cd tritonn-1.0.10-mysql-5.0.51a
$ CC='gcc' CFLAGS='-g' CXX='gcc' CXXFLAGS='-g' LDFLAGS='' ASFLAGS='' ./configure '--prefix=/usr/local/mysql' '--localstatedir=/usr/local/mysql/data' '--libexecdir=/usr/local/mysql/bin' '--with-comment=MySQL Community Server (GPL)' '--with-server-suffix=' '--enable-thread-safe-client' '--enable-local-infile' '--enable-assembler' '--with-pic' '--with-fast-mutexes' '--with-client-ldflags=-static' '--with-mysqld-ldflags=-static' '--with-zlib-dir=bundled' '--with-big-tables' '--with-yassl' '--with-readline' '--with-archive-storage-engine' '--with-blackhole-storage-engine' '--with-ndbcluster' '--with-csv-storage-engine' '--with-example-storage-engine' '--with-federated-storage-engine' '--with-innodb' '--with-extra-charsets=all' '--with-senna' '--with-mecab'
$ make
# make install
# echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf.d/tritonn.conf
# ldconfig

wgetで記載しているURLについて,万全を期すなら,例えばSennaなら,ブラウザでhttp://qwik.jp/senna/Download.htmlにアクセスして,sourceforge.jpへのリンク,最新版tarball (tar.gzのファイル名)へのリンクをクリックして,ダウンロードそのものはキャンセルし,書かれているURLを,wgetの引数にします.Tritonnについては,http://qwik.jp/tritonn/download.htmlからになります.
configrueのコマンドがやたら長いですが,これは,http://qwik.jp/tritonn/howtobuild.htmlの「configureオプションの決め方」に書かれているコマンドそのままです.
"A=a B=b ... コマンド" は,「コマンドを実行するんだけど,環境変数Aの値はa,Bの値はb,...と代入しといてね.でもって,その代入は,そのコマンド限りということでよろしく」という意味です."env A=a B=b ... コマンド" と書いても同じです.

データベース初期化

# groupadd mysql
# useradd -g mysql mysql
# /usr/local/mysql/bin/mysql_install_db --user=mysql

TritonnつきMySQLサービスの起動準備

# cd (適当なところ)/tritonn-1.0.10-mysql-5.0.51a/support-files
# cp mysql.server /etc/init.d/tritonn
# chmod +x /etc/init.d/tritonn
# update-rc.d tritonn start 93 2 3 4 5 . stop 20 0 1 6 .
# mkdir /var/lock/subsys
# cp my-medium.cnf /etc/my.cnf
# vim /etc/my.cnf
以下の2つを追加します.
default-character-set=utf8
skip-character-set-client-handshake
ポート番号も変更しておくと,パッケージからのMySQLと衝突しません,たぶん.

TritonnつきMySQLの起動

# /etc/init.d/tritonn start

データベース追加

# /usr/local/mysql/bin/mysqladmin -u root password 'パスワード'
# /usr/local/mysql/bin/mysql -u root -p
Enter password:
mysql> create database データベース名;

MySQL/Rubyのインストール

個人的にこれも不可欠なので,入れておきます.

$ wget http://tmtm.org/downloads/mysql/ruby/mysql-ruby-2.8pre4.tar.gz
$ tar xzf mysql-ruby-2.8pre4.tar.gz
$ cd mysql-ruby-2.8pre4
$ ruby extconf.rb --with-mysql-lib=/usr/local/mysql/lib/mysql --with-mysql-include=/usr/local/mysql/include
$ make
$ make install

最後が「#」すなわちrootのプロンプトになっていないのは,Rubyの安定版スナップショットをコマンド一つでインストール - わさっきで書いたとおり,自分のホームディレクトリの下にrubyやライブラリをインストールしているからです.