Link

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