sqlite 3.0.3 にしてみる
本家フォーラムにて、DBD::SQLite 1.0x で POPFile を動かす件に進展。sqlite 3.0.3、DBI 1.43、DBD::SQLite 1.02 の組み合わせで POPFile が動作するということだ。
さらに、流れを追うと、データベースファイルのサイズが 40% ほど小さくなったという話や、sqlite 3 ではデータタイプが追加されたとか、それによってパフォーマンスが向上するかも、というような話も出ている。それは気になる、ということで早速試してみた。まだ動作には問題があるようなので、とりあえず自分用にメモ。
環境は、Mac OS X 10.3.4(Panther)で、POPFile 0.21.2 に日本語化パッチをあてたもの。ここに、sqlite 3.0.3、DBI 1.43、DBD::SQLite 1.02 をインストールする。そして、インストールされたファイルを /Library/POPFile/lib にコピーして上書き。データベースファイルの名前を変更して(もちろん、その前に POPFile を終了させる)、sqlite3 の形式に変換する。
- POPFile を終了させる
POPFile コントロールセンターから POPFile を終了させる。また、適宜 POPFile フォルダをバックアップする。
- sqlite 3.0.3 のインストール
SQLite home pageより、3.0.3 のソースコードをダウンロードする。これを書いている時点で、3.0.4 というバージョンも出ているようだけど、とりあえずひとつ前のもので試してみた。3.0 までには、最低でももう一度ベータバージョンが出るという話なので、もしこれを読んで試す場合は、それまで待ってみてもいいかもしれない。
ダウンロードしたファイルを展開し、./configure、make、sudo make install でインストール完了だ。
- DBI 1.43 のインストール
DBI-1.43 をダウンロードする。perl Makefile.PL、make、sudo make install でインストール。
- DBD::SQLite 1.02 のインストール
DBD::SQLite-1.02 をダウンロードする。perl Makefile.PL、make、sudo make install でインストール
- ファイルを移し替える
DBI、DBD::SQLite は、デフォルトでは /Library/Perl/5.8.1/darwin-thread-multi-2level にインストールされるので、これを /Library/POPFile/lib に移動する(移動するのではなくて、/Library/POPFile/lib 内の関係ファイル/フォルダを削除するという手もあるが)。移動するのは、DBI、DBD の各フォルダ、DBI.pm、それから auto フォルダ内にある DBI、DBD の各フォルダ。また、マニュアル類が /man にインストールされてしまうので、これも適当な場所に移動する。
- データベースを変換する
変換方法は、本家フォーラムの書き込みのまま。ただし、ファイル名変更は rename ではなく、mv。また、/Library/POPFile 内は管理者権限がないと操作できないので、それぞれのコマンドに sudo をつけることが必要。パイプのあとの sqlite3 にもつける必要があるので注意(私はここでちょっとはまった(汗))。
- POPFile を動かす
/Library/POPFile で、sudo perl -Ilib popfile.pl で動かしてみる。もしなにかエラーが出たら、どこかで失敗している。
- サイズは小さくなったか?
変換前のファイルサイズが 3,700,736 バイト、変換後が 1,769,472 バイト。もとの 48% くらいになった。半分以下。これは大きな効果かも。
- スピードは速くなったか?
今のところ体感できていない。
- 問題は起こらないか?
warning が少し出ている。また、本家フォーラムにおいて、commit 周りで問題があるというようなことが書かれている。メールの受信には特に問題はないようなのでこのまましばらく様子を見てみるつもり。