Tech エントリー[インストール・アップグレード]
Hyper Estraier のソースにパッチを当ててインストール
Hyper Estraier のインストールに向けて事前調査をしていたら、いくつか気になることがでてきた。
- 依存ライブラリである libiconv の日本語処理 (cp932 関連) に問題があるようで、それに対するパッチが有志の方より提供されている
- fedora は yum で一発インストールできるようだが、CentOS は手動でインストールするしかなさそう
- Hyper Estraier 1.4.13 向けにパッチが提供されている
libiconv
インストール済みか確認。
iconv -l | egrep -i '(-31j|-ms)'
EUC-JP-MS//
EUCJP-MS//
WINDOWS-31J//
iconv は既にインストール済みだった。
参考にリンクを載せておく。
説明を読んでいくとちょっと気になる記述があった。
cp932 の変換を 表1-2 のように修正したため、iconv( "iso-2022-jp", "cp932" ); といった変換で表1-2 にある文字が変換出来なくなります。
libiconv-1.12-cp932.patch.gz
パッチの適用が必須ということでもないみたい。
QDBM
QDBM は rpm が出ているみたいだけど、最新バージョン 1.8.77 の rpm はないみたい...
Index of http://qdbm.sourceforge.net/rpm
メーリングリストの以下の投稿よりパッチを入手。
SourceForge.net: [hyperestraier-users-ja] 投稿済 patch の 1.4.13 対応
qdbm のソースにパッチをコピーして、patch コマンドで適用。
cd /path/to/src/qdbm-1.8.77
patch < qdbm1.8.77_00all.diff
./configure --enable-zlib
make
make check #自己診断チェック
make install
configure の --prefix= の初期値は /usr/local
configure で --enable-zlib する。
コメントで指摘いただいた、--enable-zlib は QDBM で指定するオプションですね。
ちなみにほかにもパッチは出ているみたい。
[hyperestraier-users-ja] bodyが空のMIMEのインデックス作成
メールの検索につかっているのですが、メールボディが空だとヘッダがユーザ属性として登録されません。
どうもヘッダとボディの境界を検出する部分の条件が厳しすぎるようなので qdbm-1.8.77 に対するパッチを書いてみました。
SourceForge.net: Hyper Estraier - Mailing List
Hyper Estraier
SourceForge.net: [hyperestraier-users-ja] 投稿済 patch の 1.4.13 対応 (再掲)
どんなパッチなのか、というのは過去の ML より
[hyperestraier-users-ja] Patched for Node Sever & Crawler
2007-07-09
- ノードサーバ挙動修正パッチ
- Crawler のログ情報に関するパッチ
- Crawler 高速化パッチ
- Crawler log rotate パッチ
- Basic 認証パッチ
- 情報量 0 ページの削除ルールパッチ
SourceForge.net: Hyper Estraier - Mailing List
あと、以下のメールも含めたパッチみたい。参考情報有。
SourceForge.net: Re: [hyperestraier-users-ja] 投稿済 patch の 1.4.12 対応
patch コマンドでパッチあててインストール。
cd /path/to/src/hyperestraier
patch -p0 < he1.4.13_00all.diff
./configure
make
make check #自己診断チェック
make install
configure で --enable-zlib するのがミソ ? かなぁ。
コメントで指摘いただいた、--enable-zlib は QDBM で指定するオプションですね。
その他の Hyper Estraier 向けのパッチ。今回は含めなかった。
[hyperestraier-users-ja] シンプルな入力フォームと、MIMEヘッダの文字コード判別パッチ
estseek.cgiに、シンプルな入力フォームを追加するパッチです。
estcmdで、MIMEファイル登録する際、日本語が優先選択(-il ja)されている時、ヘッダ文字列の文字コードを、本文に指定された文字コードとは別に、個別に文字コードを自動判定し、変換・登録処理を行います。
SourceForge.net: Hyper Estraier - Mailing List
Re: [hyperestraier-users-ja] 文書登録件数による検索結果の差異について
例でいうと、「下」というフレーズの検索は「下*」という扱いになり、この"*"を256種類までしか調べない、ということのようです。
このために、インデックスに登録されているすべての文書が検索結果として出てこなくなるようです。
対処としましては、estseek.cgiで検索を行う場合は、このwildmaxパラメータはestseek.confで設定できます。この値を大きな数字にしてみてください。
estcmd ではこのパラメータを変更できないようでして、添付のパッチを作りました。
hyperestraier-1.4.13/でpatch -p0 < <パッチファイルのフルパス>で適用できます。
このパッチをあてると estcmd search に -wmax というオプションを使えるようになります。
SourceForge.net: Hyper Estraier - Mailing List
API経由なら「est_db_set_wildmax」を使用して上限値を上げることで、漏れなく検索できるとのこと。
実際の動作確認はまだ、なのでメモしておく。
- Introduction of Hyper Estraier Version 1 (Japanese) # 検索機能の配備
- 全文検索システム「Hyper Estraier」の導入 ("「Hyper Estraier」の実行" の見出し以降が参考になる)
- 全文検索 (ドキュメント) (TIS のオープンソース SKIP 関連のページより)
おまけ
rpm 化はいずれ...
でぶろぐ。 / HyperEstraierをCentOS 5.1に導入
Python & Django で Hyper Estraier
Python より Hyper Estraier を利用するライブラリ
patch の使い方
パッチファイルと対象ファイルとの相対位置 ... 云々のところがまだよくわからない。-p オプションの使い方とか...
-p オプションは差分作成時の相対ディレクトリを有効にします (-p がないと全てのファイルがカレントディレクトリにあると仮定されます)。 -p の後ろの 0 は 差分ファイルに記録されている相対ディレクトリを全て有効にするという意味です。 1、2 と増えていくと、記録された相対ディレクトリが頭から1つづつ削られます (例 : -p1 だと usr/local/src → local/src、-p2 だと usr/local/src → src)。
Personal Information Box
tee コマンドいいかも
パイプからの入力を標準出力と指定ファイルに書き出す
UNIXの部屋
コメント (2) トラックバック (2) Atom/RSS
投稿: 2008年08月03日 14:20 / 最終更新: 2008年10月20日 20:37
» yum-cron だと /etc/yum.repos.d/CentOS-Base.repo を読まない ?
« WWW SQL Designer 2.1.1 の日本語化
トラックバック
-
TR-SERIES/TR-SS/Cookbook
TriAx 事業部横断 WIKI (PukiWiki/TrackBack 0.4)2008年10月20日 12:13 - TR-SERIES/TR-SS Lacoon SS Cookbook restart オプションと revcont オプション HyperE...
-
HyperEstraierにパッチを適用しWindows版再ビルドメモ
開運パワー研究科2009年4月 2日 17:24 - HyperEstraierにパッチを適用しWindows版再ビルドメモ ここと http://d.hatena.ne.jp/aenomoto/200802...



コメント (投稿する)
情報をまとめて頂きありがとうございます。とても参考になりました。
なお、HyperEstraier インストール時に指定されている enable-zlib オプションは、 HyperEstraier ではなく、QDBM をインストールするときに指定するものではないでしょうか?
junya さん、コメントありがとうございます。
> enable-zlib オプション (略)
あっ、その通りです。修正しておきました。
ありがとうございます。