Xfce関連アプリケーションの検索ツール catfish をインストールしてみた。
…で、ふと思ったのが catfish は「なまず」の英語名であり、そう言えば昔
Namazuっていう全文検索ツールがあったな、ということ。
インストールした catfish は catfish-1.4.13 で、 Xfce-4.16pre1 環境で問題なく
動作している。
ただ、私が catfish の使い方を知らないせいなのかわからないが、 catfishは
ファイル名を検出してくれるが、ファイルの中身までは検索してくれないようだ。
では、全文検索 Namazu は現在の slackware64-current の $LANG=ja_JP.UTF-8 環境
で使えるのか、試してみた。
[ update 2020-11-01 ]
*** Namazu インストール(関連パッケージを含む) ***
1) kakasi-2.3.5
SlackBuild : kakasi SlackBuild
2) File-MMagic-1.30
URL : File-MMagic-1.30 source
SlackBuild : perl-file-mmagic.SlackBuild
3) namazu-2.0.22pre8
SlackBuild : namazu.SlackBuild (更新 2020-11-01 B)
注記) nkf-2.1.5 が現環境でビルド& インストールされていることが前提
------------------
4) Namazu を UTF8環境で使うために…
先人の方が、namazu を UTF8 環境で使うためのスクリプトを作ってくれていました。(感謝)
URL : namazu_utf8
※なお、 namazu_utf8 は上記 3) の namazu-2.0.22pre8 ソースの contribフォルダに入っている。
=== 以下の内容で namazu_utf8 を作成し、実行属性を付与して /usr/bin/ にコピーする ===
#!/bin/sh
LC_ALL=ja_JP.eucJP
LANGUAGE=ja_JP.eucJP
LANG=ja_JP.eucJP
namazu `echo -n $* | iconv -f UTF-8 -t EUC-JP` | iconv -f EUC-JP -t UTF-8
LC_ALL=ja_JP.eucJP
LANGUAGE=ja_JP.eucJP
LANG=ja_JP.eucJP
namazu `echo -n $* | iconv -f UTF-8 -t EUC-JP` | iconv -f EUC-JP -t UTF-8
====================================================================
更新: 2020-11-01 (B)
上記 3) のSlackBuild に namazu_utf8 を一部修正する patch を追加した。
修正後の namazu_utf8 は以下の内容
====================================================================
#!/bin/sh
LC_ALL=ja_JP.eucJP
LANGUAGE=ja_JP.eucJP
LANG=ja_JP.eucJP
namazu `echo -n $* | nkf -e` | nkf -w
#namazu `echo -n $* | iconv -c -f UTF-8 -t EUC-JP` | iconv -c -f EUC-JP -t UTF-8
LC_ALL=ja_JP.eucJP
LANGUAGE=ja_JP.eucJP
LANG=ja_JP.eucJP
namazu `echo -n $* | nkf -e` | nkf -w
#namazu `echo -n $* | iconv -c -f UTF-8 -t EUC-JP` | iconv -c -f EUC-JP -t UTF-8
====================================================================
(memo)
もしかしたら私の環境固有の問題かもしれないが、元の namazu_utf8 だと
一部の PDFファイルの検索結果が iconv のエラーのため結果表示されないという問題があった。
試しに iconv に -c オプション(出力から無効な文字を取り除く)を付与したら、検索結果が表示
できるようになったため、 -c オプションを付けることにした。
…と、解決したと思ったが、インデックスは作成されているものの、検索文字によっては
検索結果表示が文字化けしてコンソールがフリーズしてしまう現象が出てしまった。
namazu_utf8 で iconv を使わずに nkf を使うようにしたら直った。
行き当たりばったりな解決策のため、また別の不具合が出てくる可能性もある。
わたしの環境固有の問題なのだろうか。
追記)2020-11-01
やはり環境固有の問題な気がする。
別PCの環境(Slackwareではない Linux、ja_JP.UTF-8)で確認したら、 iconv 使用の
namazu_utf8 でもフリーズせずに結果表示された。環境の違いとはいえ、どこが違っての
不調発生なのか未だ不明。
ふと、以下のような実験を思いついた。
別環境PC( iconv使用の namazu_utf8 でフリーズしていないPC)に、slackware環境のインデックス
ファイルをまんまコピーして namazu検索したところ、slackware環境と同様に同じ検索文字列で
フリーズした。
つまり、システム環境設定等の問題ではなく、slackware PC にある何か特定のファイルから
生成されたインデックスを読み込んだときに発生している模様。
というわけで、iconv使用の namazu_utf8 で問題なく動作していても、新たなファイルを追加して
インデックスを更新した後にいつ何時フリーズが発現しても不思議ではないことになる。
今のところの結論として、 nkf使用の namazu_utf8 で運用するのが安全策と思われる。
5) その他 namazu関連パッケージ
必須なのかどうかよく解っていないが、入れておいても害はないだろうということで
以下のパッケージを作成してインストールした。
※ ps2text は postscriptファイルのインデックスを作成するため必要。というか、最初は
pstotext を試したが、インデックス作成に失敗しているようで、解決できなかったため
仕方なしに ps2text を導入した。(ps2text はだいぶ前に更新が停止されている)
MP3-Info-1.26
ps2text-0.4.1
rtf2html-1.1a
wv-1.2.9
xlhtml-0.5.1
SlackBuld : SlackBuild for rerated packages
6) 検索用インデックス作成
$ cd ~/
$ mkdir -p .namazu/index <-- インデックス作成ディレクトリ(これは例)
上のインデックスディレクトリに合わせて /etc/namazu/my-namazurc を作成しておくこと
インデックス作成
・例として (USER-HOME)/ディレクトリのインデックスを (USER-HOME)/.namazu/index に作成する
$ mknmz (USER-HOME) --config=/etc/namazu/my-namazurc --output-dir=(USER-HOME)/.namazu/index
7) namazu コマンドとして namazu_utf8 を使うよう設定
(USER-HOME)/.bashrc に以下を追記。
=====================================================
alias namazu='namazu_utf8 --config=/etc/namazu/my-namazurc'
=====================================================