CentOSにNamazuをインストールする | 2017年1月

現時点で最新のCentOSNamazuをインストールしたのでそのときの手順やエラーの対応をメモとして残します。Namazuは全文検索用のインデックスを作成する便利なツールで2000年初期からの利用され続けているソフトです。ネットで多数の有益なページがありましたが、新しいOSでの情報が古かったのでメモを残しておきます。

Windows に Namazuをインストールしようとしましたが、対応している Activeperlの800番台のダウンロードができずに断念しました。(有償でかなり高額でした)

更新日:2017年1月21日

スポンサーリンク

kakasi のインストール

# cd /tmp
#
wget http://kakasi.namazu.org/stable/kakasi-2.3.6.tar.gz
--2017-01-21 20:53:38-- http://kakasi.namazu.org/stable/kakasi-2.3.6.tar.gz
kakasi.namazu.org (kakasi.namazu.org) をDNSに問いあわせています... *.*.*.*
kakasi.namazu.org (kakasi.namazu.org)| *.*.*.*|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1352154 (1.3M) [application/x-tar]
`kakasi-2.3.6.tar.gz' に保存中

100%[======================================>] 1,352,154 1.51MB/s 時間 0.9s

2017-01-21 20:53:39 (1.51 MB/s) - `kakasi-2.3.6.tar.gz' へ保存完了 [1352154/1352154]

#
tar zxvf kakasi-2.3.6.tar.gz
(省略)
#
cd kakasi-2.3.6
# ./configure && make && make install
(省略)
IPアドレスは *.*.*.* で MASK しています。以下同様。

Namazu のインストール

# wget http://www.namazu.org/stable/namazu-2.0.21.tar.gz
--2017-01-21 21:03:52-- http://www.namazu.org/stable/namazu-2.0.21.tar.gz
www.namazu.org (www.namazu.org) をDNSに問いあわせています... *.*.*.*
www.namazu.org (www.namazu.org)| *.*.*.*|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1394048 (1.3M) [application/x-tar]
`namazu-2.0.21.tar.gz' に保存中

100%[======================================>] 1,394,048 1.38MB/s 時間 1.0s

2017-01-21 21:03:53 (1.38 MB/s) - `namazu-2.0.21.tar.gz' へ保存完了 [1394048/1394048]
#
tar zxvf namazu-2.0.21.tar.gz
# cd namazu-2.0.21/File-MMagic/
# yum -y install perl-ExtUtils-MakeMaker
(省略)
# perl Makefile.PL && make install
Checking if your kit is complete...
Looks good
Writing Makefile for File::MMagic
Writing MYMETA.yml and MYMETA.json
cp MMagic.pm blib/lib/File/MMagic.pm
Manifying blib/man3/File::MMagic.3pm
Installing /root/perl5/lib/perl5/File/MMagic.pm
Installing /root/perl5/man/man3/File::MMagic.3pm
Appending installation info to /root/perl5/lib/perl5/x86_64-linux-thread-multi/perllocal.pod

#
cd ..
#
./configure && make && make install

設定ファイル修正

(1)
(以下サンプルの設定ファイル(mknmzrc-sample)からコピーすることにより設定ファイルを作成する。)
#
cp /usr/local/etc/namazu/mknmzrc-sample /usr/local/etc/namazu/mknmzrc
(2)
/usr/local/etc/namazu/mknmzrcの以下を修正する。
例えば検索対象を html にする場合は以下のコメントを削除する。
【変更前】
#$ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)|.*\\.txt" . # HTML, plain text
【変更後】
$ALLOW_FILE = ".*\\.(?:$HTML_SUFFIX)|.*\\.txt" . # HTML, plain text
(3)
(以下サンプルの設定ファイル(namazurc-sample)からコピーすることにより設定ファイルを作成する。)
#
cp /usr/local/etc/namazu/namazurc-sample /usr/local/etc/namazu/namazurc
(4)
/usr/local/etc/namazu/namazurcの以下を修正する。
【追加】
ローカルフォルダと実際のドメイン名を変換する。
Replace /data/ http://example.com/
日本語も対象にする。
Lang ja_JP.eucJP

インデックス作成

インデックスの作成を開始します。
以下の例では /data がインデックス対象のファイルが存在するフォルダ、/usr/local/var/namazu/index/myindexがインデックスの出力先フォルダです。
# mknmz /data -O /usr/local/var/namazu/index/myindex | nkf -w
(省略)
[基本]
日付: Sat Jan 21 23:22:08 2017
追加された文書の数: 5,976
サイズ (bytes): 24,855,490
合計の文書数: 5,976
追加キーワード数: 60,008
合計キーワード数: 60,008
わかち書き: /usr/local/bin/kakasi -ieuc -oeuc -w
経過時間 (秒): 1,409
ファイル/秒: 4.24
システム: linux
Perl: 5.016003
Namazu: 2.0.21

検索実行

検索を実行します。CentOS Linux のコマンドからの実行方法です。namazu <検索語> <インデックスのフォルダ> | nkf -w となります。
# namazu centos /usr/local/var/namazu/index/myindex | nkf -w
検索結果

参考ヒット数: [ centos: 1 ]

検索式にマッチする 1 個の文書が見つかりました。
(以下結果が表示されます。)

Webサーバで検索

検索用のcgi を webサーバの cgi ディレクトリにコピーする。
# cp /usr/local/libexec/namazu.cgi /var/www/cgi-bin
namazurc を .namazurc としてコピーする。(ドットが付く点に注意)
# cp /usr/local/etc/namazu/namazurc /var/www/cgi-bin/.namazurc
Webサーバを起動
# systemctl start httpd
ブラウザから以下のURLにアクセスすると検索ページが表示される。
http://localhost/cgi-bin/namazu.cgi?idxname=myindex

スポンサーリンク

エラー対応

【エラー1】
wget http://www.namazu.org/stable/namazu-2.0.21.tar.gz
--2017-01-21 17:42:56-- http://www.namazu.org/stable/namazu-2.0.21.tar.gz
www.namazu.org (www.namazu.org) をDNSに問いあわせています... 失敗しました: 名前またはサービスが不明です.
wget: ホストアドレス `www.namazu.org' を解決できませんでした。
【原因】ネットワークが無効化。
【対処】「設定」「ネットワーク」「有線」をオンに
【エラー2】
bash: nkf: コマンドが見つかりませんでした...
【対処】
以下コマンドでインストールする。
#yum install nkf
【エラー3】
パッケージ nkf は利用できません。
【対処】
ダウンロードしてインストールする。
#wget http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm
# rpm -ivh nkf-2.0.8b-6.2.el6.x86_64.rpm
警告: nkf-2.0.8b-6.2.el6.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID c105b9de: NOKEY
準備しています... ################################# [100%]
更新中 / インストール中...
1:nkf-1:2.0.8b-6.2.el6 ################################# [100%]
【エラー4】
mknmz コマンドで以下のエラー
sh: no: コマンドが見つかりません
あるいは
sh: no: command not found
【対処】
nkf がインストールされていない状況で"./configure && make && make install"を実行した。
nkf をインストールしてから再度"./configure && make && make install"を実行する。
【エラー5】
namazu.cgi による検索で以下のエラー(インデックスが開けませんでした)
検索結果

参考ヒット数: [ (インデックスが開けませんでした) ]

検索式にマッチする文書はありませんでした。
【対処】
/var/www/cgi-bin/.namazurc の以下の行のindexの設定を確認する。(namazurcのファイル名の先頭にドットが付く点に注意)
Index /usr/local/var/namazu/index/myindex
(*)myindexに作成した場合。ここには実際に作成したフォルダを指定する。

スポンサーリンク

[Linux 技術文書に戻る]