Namazu 2.0 を初めて使う方のための入門書です。
を対象に、Namazu を使い始める時の困難を少しでも減らせるよう にという目的で書かれています。Namazu の全ての機能については、 説明書 があります。またインストー ルについては INSTALL-ja ファイルに説明があります。
1.3.0.x から 2.0 への開発は次のように推移してきました。
Namazu は大きくわけて mknmz, namazu, namazu.cgi の三つから構成されています。
2.0 の版を作るために次のソフトウェアが必要です。(お名 前の敬称は略させていただきます)
| 名称 | 説明 | 必須 | 最新版 | 必要な版 | ファイル名 | 作成・配布 | 入手先(例) | その他 | 
|---|---|---|---|---|---|---|---|---|
| Perl | Perl 言語処理系 | ○ | 5.005_03 | 5.004 | perl-5.005_03.tar.gz | Larry Wall GNU CPAN | CPAN | |
| nkf | Network Kanji Filter 漢字コード 変換系 | ○ | 1.9 | 1.71 | nkf171.shar | 河野眞治 | 琉球大学 | |
| NKF | nkf Perl モジュール化 | ▲ | 1.9 | 1.71 | ||||
| KAKASI | 日本語・ ローマ字 変換系 | △ | 2.3.1 | <= | kakasi-2.3.1.tar.gz | KAKASI Project | namazu.org | |
| Text::Kakasi | KAKASI Perl モジュール化 | ▲ | 1.01 | <= | Text-Kakasi-1.01.tar.gz | 野首貴嗣 | Text::Kakasi | |
| Chasen | (茶筌) -- 日本語 形態素 解析器 | △ | 2.02 | <= | chasen-sys2.02 -ipadic2.1.tar.gz | 奈良先端大学 | ftp:// | 配布方針 | 2.02 以前では libchasen.a について下記参照 | 
| Text::ChaSen | ChaSen Perl モジュール化 | ▲ | 0.20 | <= | Text-ChaSen-0.20.tar.gz | 野首貴嗣 | Text::ChaSen | |
| File::MMagic | File 種別 | × | 0.20 | <= | File-MMagic-0.20.tar.gz | 野首貴嗣 | CPAN dist | Namazuの配布に同梱されている | 
| 両方用意しておいた場合 | (無指定ではわかち書きに KAKASI を使うが、茶筌も -c オプションをするだけで使用できる) | 
| 片方しか用意していない場合 | ./configure の時点でどちらを使うかが選ばれます。 | 
perl Makefile.PL; make; make install
と実行するだけです。問題がなければ入れておいた方がいいでしょ
う。
cp libchasen.a /usr/local/lib ranlib /usr/local/lib/libchasen.a # ここはシステムに応じてと実行する必要があります。
Namazu 2.0 を日本語環境で利用するには環境変数
LANGの設定が必要です。Windows では ja_JP.SJIS と設定
します。UNIX では ja, ja_JP.eucJP,
ja_JP.EUC, ja_JP.ujisなどを設定し
ます。適切な設定はシステムによって異なります。もしわからない
場合は ja を設定してください。
もし make install する前に mknmz を試してみたいという時には
cd scripts してから ./mknmz と実行すると、
(/usr/local/share/namazu でなく)
すぐ隣にある ../pl/*.pl を参照します。
(この辺の事情は mknmz の中の load_module() の中の @INC の文字の辺 で分るはずです)。
例えば
./mknmz -C  ./mknmz --help ./mknmz -O /tmp ‾/Mail
などを試せます。ただし、 make install 前は日本語でのメッセー
ジ出力は行えません。
以上 mknmz と namazu の 2つの使い方は引数無しで起動すると簡 単な説明が、--help と入力すると長い説明が表示されます。また -C を付けるとその時の構成を表示します。この 3つは覚えておくと便利です。
| 引数 | 意味 | その他に引数を付けると | 
|---|---|---|
| 無 | とても簡単な説明 | (他の引数・選択は付けられない) | 
| --help | 詳しい説明 | (他の引数・選択は無視される) | 
| -C  | その時の構成 | (他の引数・選択も意味がある) | 
まずはインデックスを作ります。
(もし make install の前に試したいなら、上の
mknmz make install 前の確認を見てください)
1.4.0.8 からは少し書式が変っています。
URI の置換は 
--replaceオプションを使って指定するようになりました。
URIの置換は namazu/namazu.cgi の実行時にも行えます。mknmz で
は --replace を指定しないで実行し、.namazurc の設定で
namazu/namazu.cgi の実行時に置換する方法をお勧めします。
mknmz は次のように実行します。
mknmz [options] 対象ディレクトリ
この例では、インデックスはカレントディレクトリに作られます。 もし出力先を変更したい時には -O を使います。
例えば
      mkdir /tmp/index
      mknmz -O /tmp/index ¥
      --replace='s#/foo/bar/doc/#http://foo.bar.jp/software/#' ¥
      /foo/bar/doc
のよう実行します。インデックスの作成中に mknmz は次のような メッセージを出力します。もし、メッセージが英語で表示されたと きは日本語環境での利用を参照してくだ さい。
      6個のファイルがインデックス作成の対象として見つかりました
      1/6 - /foo/bar/acrobat4.pdf [application/pdf]
      2/6 - /foo/bar/html.html [text/html]
      3/6 - /foo/bar/msg00000.html [text/html; x-type=mhonarc]
      4/6 - /foo/bar/plain.txt [text/plain]
      5/6 - /foo/bar/rfc0000.txt [text/plain; x-type=rfc]
      6/6 - /foo/bar/tex.tex [application/x-tex]
      インデックスを書き出しています...
      [基本]
      日付:                Fri Feb 18 14:09:55 2000
      追加された文書の数:  6
      サイズ (bytes):      7,301
      合計の文書数:        6
      追加キーワード数:    48
      合計キーワード数:    48
      わかち書き:          module_kakasi -ieuc -oeuc -w
      経過時間 (秒):       8
      ファイル/秒:         0.75
      システム:            linux
      Perl:                5.00503
      Namazu:              2.0
/foo/bar/doc
  
「/foo/bar/doc/ に置いてあるものは
外から見ると、
http://foo.bar.jp/software/ の下に見えるもの
なので、(Perl 語で言うと) 
s#aaa#bbb#
のように置換してね」という意味です。
(上の例では aaa (/foo/bar/doc/)
            bbb (http://foo.bar.jp/) となります。)
Namazu は元々は HTML 形式のものを処理するために作られました が、現在では様々な文書形式を取り扱うことができます。 /usr/local/share/namazu/filter というディレクトリに手がかり が、また説明書の中の 文書フィ ルタ の節に詳しい説明があります。
% mknmz ‾/Mail/foobar
mknmz のコマンド行引数は、mknmz --helpとすると得ら れます。また-C を付けると、その時の構成を次のように表示してくれます。
      読み込んだ設定ファイル: /home/foobar/.mknmzrc
      システム: linux
      Namazu: 2.0
      Perl: 5.00503
      NKF: module_nkf
      KAKASI: module_kakasi -ieuc -oeuc -w
      ChaSen: module_chasen -j -F '%m '
      わかち書き: module_kakasi -ieuc -oeuc -w
      言語: ja_JP.ujis
      文字コード: euc
      CONFDIR: /usr/local/etc/namazu
      LIBDIR: /usr/local/share/namazu/pl
      FILTERDIR: /usr/local/share/namazu/filter
      TEMPLATEDIR: ../template
      対応メディアタイプ: 
        application/msword
        application/pdf
        application/x-bzip2
        application/x-compress
        application/x-gzip
        application/x-tex
        message/news
        message/rfc822
        text/hnf
        text/html
        text/html; x-type=mhonarc
        text/plain
        text/plain; x-type=rfc
        text/x-roff
| 短縮形 | 本名 | 説明 | 
|---|---|---|
| -F | --target-list=file | インデックス対象のファイルのリストを読み込む | 
| -t | --media-type=mtype | 対象ファイルの文書形式を指定する | 
| --allow=PATTERN | 対象ファイル名の正規表現を指定する | |
| --deny=PATTERN | 除外するファイル名の正規表現を指定する | |
| --exclude=PATTERN | 除外するパス名の正規表現を指定する | 
現在の版では対象ディレクトリに symbolic link がある とうまく処理できません。
検索を行うにはコマンド行で次のように実行します。
      % namazu 検索文字列 インデックス
インデックスを省略すると、namazu は
/usr/local/var/namazu/index を対象とします。
namazu コマンドの設定は namazurc で行います。
namazurc の設定例は 配布の中の 
/usr/local/etc/namazu/namazurc-sample にありま
す。
Web で CGI を実行するにはいくつかの条件があります。Apache の場合、設定として
| ScriptAlias | /cgi-bin/ /usr/local/apache/cgi-bin/ | URI 中の /cgi-bin/ に対応するディレクトリ | 
| AddHandler | cgi-script .cgi | .cgi と拡張子ならば cgi として実行する | 
| AllowOverride | All | .htaccess での設定を許可する (Web管理者) | 
| Options | ExecCGI | cgi-bin の実行を許す | 
| DirectoryIndex | index.html | URI がディレクトリを指している時に探すファイル名 | 
などが関係します。(Web管理者) と書かれているもの以外は .htaccess にも設定できます。 (ただし Apache の設定次第でそれ を禁止されていることもある)
ここに書いてあることは「保証」ではありません。 開発者の希望が書かれているだけです。
               (準備)     (検索画面)
                mknmz       namazu
               ↑   ↓     ↑    ↓
      元々の資料    インデックス  検索結果
Namazu はあらかじめ単語の索引を作っておき、検索要求があっ
たときには、それを元に検索を行う。この「あらかじめ作
られた「索引」のことをインデックスと呼んでいる。Index, Replace, Base, Logging, Lang, Template
の設定ができる。
詳しくは説明書を参照のこ
と。
perl -MText::Kakasi -e '' perl -MText::ChaSen -e '' perl -MNKF -e ''のように入力した時に、何も表示されなければいい。 その状態で namazu で ./configure すると、これらが使われる。