Namazuの導入――――第3回 ボリューム管理とApache2の設定(その2)UNIX USER10月号「unixuser.jpサーバー構築記」より転載

unixuser.jpでは全文検索ツールNamazuを使っている。Namazuは標準パッケージとして用意されていないのでビルド作業が必要になる。今回はNamazuの導入までを解説する。

» 2004年09月24日 00時00分 公開
[渡辺真次,UNIX USER]
Namazuの導入

 unixuser.jpでは全文検索ツールNamazuを使っている。Namazuは標準パッケージとして用意されていないのでビルド作業が必要になるが、開発環境を整えれば、ソースからのビルドは比較的スムーズだ。まずは開発環境を整えよう。

HP-UX Internet Expressからオープンソースソフトウェアを導入

 主要なオープンソースソフトウェアは、HP-UX Internet Expressとして、HP-UX用にビルド・パッケージ化されたものが用意されている。この中には、Bash、Tcsh、less、GNU Make、Vim、Emacsなどが収録されているので、これらの利用に慣れている方は導入しておくと何かと楽だろう。また、GNUbaseというパッケージがあり、GNU gettextなど、ほかからよく使われるソフトウェア群が収録されている。GNUbaseは、たいていほかのパッケージの依存関係で導入されてしまうが、swlistコマンドなどでインストールされているパッケージを確認して、確実に導入しておいたほうが良い。

 ほかにも、

からは、オープンソースソフトウェアの開発環境として必須の、GCCやbinutilsがパッケージとして入手できる。適宜ダウンロードしてswinstallを使って導入しておこう。なお、ここではGCCのバージョンは3.3.3、binutilsのバージョンは2.14を使っている。

前準備−−NKF、KAKASIもしくはChaSenを導入

 Namazuで日本語を扱う場合、コード変換ツールNKFと、漢字→かな(ローマ字)変換プログラムKAKASI、もしくは形態素解析システム茶筌(ChaSen)を必要とする。

http://sourceforge.jp/projects/nkf/(NKF)

http://kakasi.namazu.org/(KAKASI)

http://chasen.naist.jp/hiki/ChaSen/(茶筌)

 それぞれダウンロードしたら任意のディレクトリで展開して、ビルドしてみよう(実行例2)。GCCなど前述の開発関連のツールが導入されていれば、お決まりの「./configure」、「make」、「make install」でビルドできるはずだ。makeの部分はgmakeのほうが相性がいいこともあるので、標準のmakeコマンドよりgmakeコマンドを利用したほうがいいだろう。

実行例2 KAKASIのビルド
$ gunzip -c kakasi-2.3.4.tar.gz |tar xf -
$ cd kakasi-2.3.4
$ ./configure
$ gmake
$ su
# gmake install

 NKFはconfigureスクリプトがないので、ソースを展開したらgmakeコマンドを実行し、出来上がったnkfコマンドを/usr/local/binなどに手動でコピーする。また、NKFにはPerlモジュールもあり、これを導入するには、NKF.modディレクトリに移動して作業する。

 詳細な導入方法や使い方などはそれぞれ付属のドキュメントを参照していただきたい。

Namazuのビルド

 Namazuのソースはhttp://www.namazu.org/からダウンロードできる。namazu-2.0.13-1.tar.gzをダウンロードしたら任意のディレクトリで展開して、ビルドしてみよう。要領はKAKASIのビルドとまったく同じだ。とくに作業することなくインストールまでは無事終わる。

Namazu CGIの設置

 Webサーバーに仕掛ける検索インタフェースのCGIは、Namazuのインストール作業で、/usr/local/libexec/namazu.cgiに置かれる。これをchroot環境のcgi-binディレクトリに置くわけだが、通常環境と異なり、パスなど実行環境が変わってしまうので、namazu.cgiが必要とするライブラリも一緒に移動させる必要がある。

 namazu.cgiが必要とするライブラリを調べるにはlddコマンドを使う(実行例3)。このうち、下3行のライブラリは、/var/chroot/apache2/usr/lib/hpux32/以下にすでに用意されている。必要なのは/usr/local/lib/libnmz.sl.7のみである。このファイルはシンボリックリンクになっているので、実体ファイルといっしょに、chroot環境の/usr/lib/hpux32に置く。あとは、namazu.cgiをcgi-binに置き、設定ファイルなども整えて、きちんと動くかどうかを確かめれば完了である(実行例4、図6)。

実行例3 namazu.cgiが参照するライブラリ
$ ldd /usr/local/libexec/namazu.cgi
        libnmz.sl.7 =>  /usr/local/lib/libnmz.sl.7
        libm.so.1 =>    /usr/lib/hpux32/libm.so.1
        libc.so.1 =>    /usr/lib/hpux32/libc.so.1
        libdl.so.1 =>   /usr/lib/hpux32/libdl.so.1

実行例4 namazu.cgiと関連ライブラリをコピーして動作を確認
・namazu.cgiが使うライブラリをコピー
# cp -pr /usr/local/lib/libnmz.sl.7* \
/var/chroot/apache2/usr/lib/hpux32

・namazu.cgiをコピー
# cp -p /usr/local/libexec/namazu.cgi \
/var/chroot/apache2/opt/hpws/apache/cgi-bin

・動作を確認
# chroot /var/chroot/apache2 /bin/sh
# /opt/hpws/apache/cgi-bin/namazu.cgi
namazu of Namazu 2.0.13
Copyright (C) 1997-1999 Satoru Takabayashi All rights reserved.
Copyright (C) 2000-2004 Namazu Project All rights reserved.
This is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
     :
     :

図6 図6 unixuser.jp上でのNamazu利用
lvの導入

 HP-UXの標準ページャはmoreである。バックスクロール可能な拡張されたものなので、そこそこは使えるが、lessなどのほうが使い勝手がいい。HP-UX Internet Expressにlessが用意されているので、これを導入するのも手だが、SSHで接続していて、日本語のドキュメントやHTMLを見ることがあると、せめてjlessは用意しておかないと作業がはかどらない。

 日本語が表示したいと、jlessをビルドして導入するぐらいなら、強力な多言語ファイルビューワlvを利用したいところだ。

 lvは次のURLからソースを入手できる。

http://www.ff.iij4u.or.jp/~nrt/lv/

 最新版の4.51をHP-UX 11i v2上でビルドするには少し修正が必要である。アドホックな対処だが、実行例5のように変更すれば、あとは、付属のREADMEに書いてあるように、「./configure」、「make」、「make install」で利用可能になる。うまく動いたら、.bashrcで環境編集PAGERを設定し直しせば、普段の作業ははかどるだろう。

実行例5 ソースの修正個所(VDISCARDはHP-UXで利用できないのでカット。 page_tは名前がシステムのものとかぶってしまっているので違うものに)
# diff -r lv451 lv451.edit
diff -r lv451/src/console.c lv451.edit/src/console.c
425c425
<   ttyNew.c_cc[ VDISCARD ] = -1;
---
> /*  ttyNew.c_cc[ VDISCARD ] = -1; */
diff -r lv451/src/file.h lv451.edit/src/file.h
46c46
< } page_t;
---
> } page_tt;
96c96
<   page_t      page[ BLOCK_SIZE ];
---
>   page_tt     page[ BLOCK_SIZE ];
102c102
< #define page_t page_t far
---
> #define page_tt page_tt far

次回は

 これまでの3回で、unixuser.jpサーバーが運用に入るまでの一通りの作業を紹介できたと思う。実際には、細かい作業やちょっとした自動化のためのスクリプト作成などもあったが、おおまかにはこれまで紹介してきた流れで現在に至っている。このほかに、システムの監視、Webコンテンツの更新作業やアクセスログの解析、今後仕掛けていきたいと考えているアプリケーションもある状況だ。

 以降は適宜話題がまとまった段階で、誌面もしくはWeb上で随時紹介していきたいと考えている。近々で計画しているのは、本誌の全文検索を2004年8月号で紹介したEstraierで構築することである。要望などあれば、編集部までご連絡いただきたい。

UNIX USER 10月号表紙 最新号:UNIX USER 10月号の内容

第1特集
Vine Linux 3.0のすべて

第2特集
HTTPトレースから学ぶ自動Webクライアント作成術

[特別企画]
・Javaベースのスクリプト言語 Groovy/Pnuts!
[短期集中連載]
・手軽に対処できるPOPFile


Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.

注目のテーマ