Link

Scientific Linux

Scientific Linux release 6.1 (Carbon) でのインストール方法を紹介します。(インストールのタイプは Basic Server、アーキテクチャはi386)

下準備

expat-devel、libicu-devel、rpm-buildをインストールしておきます。

開発ツール、eXpat、ICU、MeCab、Apache(httpd)のインストール

開発ツールには gcc、g++(MeCabのインストールに必要)、bison、rpm-build などが必要です。 eXpat、ICU は開発用ライブラリをインストールしておきます。 stmdはデフォルトの形態素解析器としてMeCabを使用するので、MeCab(utf-8対応版)をインストールしておきます。

  • 必要なツールのインストール

    sudo yum install gcc
    sudo yum install gcc-c++
    sudo yum install bison
    sudo yum install expat-devel
    sudo yum install libicu-devel
    sudo yum install rpm-build
    sudo yum install httpd
    

rpmbuildに、GETAssocのSPECを追加する

$HOME/rpmbuild/{BUILD,SRPMS,SPECS,SOURCES,RPMS}を作成し、rpmbuildの下に getassoc-SPECS-1.1.5.tar.gzを展開します(SPECS下にファイルが3つ展開される)。さらに、cxml-1.1.5.tar.gz, stmd-1.1.5.tar.gz, getassoc-1.1.5.tar.gzをSOURCESの下に置きます。

  • rpmbuildの準備

    cd $HOME
    mkdir rpmbuild
    cd rpmbuild
    mkdir BUILD SRPMS SPECS SOURCES RPMS
    wget -q https://getassoc.cs.nii.ac.jp/package/getassoc-SPECS-1.1.5.tar.gz -O- | tar xfzp -
    cd SOURCES
    wget -q https://getassoc.cs.nii.ac.jp/package/cxml-1.1.5.tar.gz
    wget -q https://getassoc.cs.nii.ac.jp/package/stmd-1.1.5.tar.gz
    wget -q https://getassoc.cs.nii.ac.jp/package/getassoc-1.1.5.tar.gz
    cd $HOME
    

cxml、stmd、GETAssocのインストール

準備ができたら、パッケージを作成し、続いてインストールを実行します。stmdのインストール時には、(野良ビルド故)MeCabが見つからなくとも中断しないよう–nodepsを付けておきます。

  • パッケージの作成

    rpmbuild -ba rpmbuild/SPECS/cxml-1.1.5
    rpmbuild -ba rpmbuild/SPECS/stmd-1.1.5
    rpmbuild -ba rpmbuild/SPECS/getassoc-1.1.5
    
  • インストールの実行

    sudo rpm -i rpmbuild/RPMS/i386/cxml-1.1.5-1.el6.i386.rpm
    sudo rpm --nodeps -i rpmbuild/RPMS/i386/stmd-1.1.5-1.el6.i386.rpm
    sudo rpm -i rpmbuild/RPMS/i386/getassoc-1.1.5-1.el6.i386.rpm
    

stmdの設定

inetd版より高速なAF_LOCAL版を使います。起動スクリプトのサンプルが /usr/local/share/examples/init.d/stmd にインストールされているので、それをコピーして用います。

  • 起動スクリプトのコピー

    sudo cp /usr/local/share/examples/init.d/stmd /etc/init.d/stmd
    sudo chown root:root /etc/init.d/stmd
    sudo chmod 755 /etc/init.d/stmd
    sudo chkconfig --add stmd
    sudo chkconfig --level 345 stmd on
    sudo service stmd start
    

GETAssoc の設定

rpm対応版は、バイナリとデータが異なるディレクトリ以下に配置されています。データの保管場所は自動では作成できないので、これを手動で作成します。以下の例は、データの置き場所を /home/ore/g としたものです。

  • データの置き場所を作成

    mkdir -p /home/ore/g
    (cd /home/ore/g && mkdir bin etc nwam pwam tmp && chmod -R og+rX .)
    

作成したディレクトリの属性としては、stpを実行するユーザが全権利を持つこと、および、Apache(httpd、ユーザ=apache)が読めることと実行できることが必要です。(パスの途中のディレクトリの読み取りおよび実行権限、SELinuxの設定などもチェックポイントです。)

rpm対応版は、バイナリとデータが異なるディレクトリ以下に配置されているため、getassocにデータの位置を教える必要があります。これを、実行時引数か、環境変数で実現できれば良いのですが、Apache(httpd)のcgi-bin呼び出しではいずれの方法も利用できません。そこで、getassocと同名のスクリプトをかませてこの問題を解決します。置き場所は、/home/ore/g/bin にします。このファイルには、chmod +xで実行可属性をつけておきます。以下のサンプルで、/home/oreを$HOMEと書き換えてはならないことに注意してください。

  • /home/ore/g/bin/getassoc:

    #! /bin/sh
    exec /usr/local/libexec/getassoc/getassoc -R /home/ore/g
    

httpdの設定

/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>
    

次に、これらのファイルを読み込むよう、/etc/httpd/conf/httpd.conf に2行追加します。

  • /etc/httpd/httpd.conf: (2行追加)

    Include "/home/ore/etc/ScriptAlias.conf"
    Include "/home/ore/etc/Directory.conf"
    

Apache(httpd)を起動します。

  • Apache(httpd)起動:

    sudo service httpd start
    

うまく行かないときは、ここをチェック!

  • /etc/sysconfig/iptables

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    
  • で、iptablesを再起動

    sudo service iptables restart
    

Getassocインデックスを作成

stpを使います。stpの第一引数には/home/ore/g を渡します。

  • 例:

    stp -b /home/ore/g mai2001 title,link < mai2001.itb