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