NetBSD
NetBSD 5.1 (amd64) でのインストール方法を紹介します。
下準備
pkgsrc(2010Q4で検証)をインストールしておきます。以下、pkgsrcを展開した場所を/usr/pkgsrc、LOCALBASEを/usr/pkgとします。お手元の環境に合わせて適宜読み替えてください。 NetBSDユーザ対象ということで、この文書は、ある程度のスキルを仮定しています。従って、スーパーバイザ権限の必要なところなども明示していません。
eXpat、ICU、MeCab、Apacheのインストール
まず、MeCabの辞書(ipadic)としてutf-8のものが使われるよう、mk.confを修正しておきます。
- /etc/mk.conf: (1行追加)
MECAB_CHARSET=utf-8
ここまで準備ができたら、いったん、pkgsrcを使って必要なツールをインストールしておきます。なお、apache22も、getassocより先にインストールしてください。
-
必要なツールのインストール
(cd /usr/pkgsrc/textproc/expat && make && make install) (cd /usr/pkgsrc/textproc/icu && make && make install) (cd /usr/pkgsrc/textproc/mecab-base && make && make install) (cd /usr/pkgsrc/textproc/mecab-ipadic && make && make install) (cd /usr/pkgsrc/www/apache22 && make && make install)
pkgsrcに、GETAssocのローカルポートを追加
getassoc-pkgsrc-1.1.5.tar.gzをダウンロードし、/usr/pkgsrcに展開します。local/cxml、local/stmd、local/getassocが展開されます。
cxml、stmd、GETAssocのインストール
大規模なデータベースを運用する場合、GETAssocをLP64対応で構成する必要があります。その場合、mk.confに以下の設定を追加しておきます。
-
/etc/mk.conf: (3行追加)
.if ${PKGPATH} == "local/getassoc" CONFIGURE_ARGS+=--enable-lp64=yes .endif
準備ができたら、インストールを実行します。
-
インストールの実行
(cd /usr/pkgsrc/local/cxml && make && make install) (cd /usr/pkgsrc/local/stmd && make && make install) (cd /usr/pkgsrc/local/getassoc && make && make install)
stmdの設定
inetd版より高速なAF_LOCAL版を使います。起動スクリプトのサンプルが /usr/pkg/share/examples/rc.d/stmd にインストールされているので、それをコピーして用います。
-
起動スクリプトのコピー
cp -i /usr/pkg/share/examples/rc.d/stmd /etc/rc.d/
-
/etc/rc.conf: (1行追加)
stmd=YES
-
/etc/syslog.conf: (1行追加、空白は全てタブ文字です)
local0.* /var/log/stmd
-
/etc/newsyslog.conf: (1行追加、stmdと644の間の空白は全てタブ文字です)
/var/log/stmd 644 7 250 * Z
-
syslogの再起動
/etc/rc.d/syslogd restart
-
stmdの起動
/etc/rc.d/stmd start
GETAssoc の設定
pkgsrc対応版は、バイナリとデータが異なるディレクトリ以下に配置されています。データの保管場所は自動では作成できないので、これを手動で作成します。以下の例は、データの置き場所を /home/ore/g としたものです。
-
データの置き場所を作成
mkdir -p /home/ore/g (cd /home/ore/g && mkdir bin etc nwam pwam tmp && chmod -R og+rX .)
作成したディレクトリの属性としては、stpを実行するユーザが全権利を持つこと、および、Apacheが読めることと実行できることが必要です。 pkgsrc対応版は、バイナリとデータが異なるディレクトリ以下に配置されているため、getassocにデータの位置を教える必要があります。これを、実行時引数か、環境変数で実現できれば良いのですが、Apacheのcgi-bin呼び出しではいずれの方法も利用できません。そこで、getassocと同名のスクリプトをかませてこの問題を解決します。置き場所は、/home/ore/g/bin にします。このファイルには、chmod +xで実行可属性をつけておきます。
-
/home/ore/g/bin/getassoc:
#! /bin/sh exec /usr/pkg/libexec/getassoc/getassoc -R /home/ore/g
httpdの設定
/usr/pkg/etc/httpd/httpd.conf の変更を最小限に抑えるため、GETAssocに関係する設定はファイルを別にし、/home/ore/etcに置くことにします。/home/ore 以下には、etcとg/etcの二つの異なるディレクトリができることに注意してください。httpdの設定で用いるのは、etcの方です。作成するファイルは2つです。
-
/home/ore/etc/ScriptAlias.conf:
ScriptAlias /getassoc/ "/home/ore/g/bin/getassoc/"
-
/home/ore/etc/Directory.conf:
<Directory "/home/ore/g/bin/"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory>
次に、これらのファイルを読み込むよう、/usr/pkg/etc/httpd/httpd.conf に2行追加します。
-
/usr/pkg/etc/httpd/httpd.conf: (2行追加)
Include "/home/ore/etc/ScriptAlias.conf" Include "/home/ore/etc/Directory.conf"
あとは、いつも通りのApacheの起動手順です。
-
/etc/rc.conf: (1行追加)
apache=YES
-
起動:
/etc/rc.d/apache start
Getassocインデックスを作成
stpを使います。stpの第一引数には/home/ore/g を渡します。
-
例:
stp -b /home/ore/g mai2001 title,link < mai2001.itb