Linux Debian/Ubuntu
Debian GNU/LinuxおよびUbuntuでのインストール方法を紹介します。
下準備
apt-getによる必要なプログラム、ライブラリのインストール
$ sudo apt-get install gcc g++ make apache2 bison libexpat1-dev libicu-dev
stmdのインストール
ここではデフォルトの形態素解析器にMeCabを指定しています。Mecabのインストールについては、[[こちら>インストール/MeCabのインストール]]をご覧ください。
$ tar zxf stmd-x.x.x.tar.gz
$ cd stmd-x.x.x
$ ./configure --with-icu-config=/usr/bin/icu-config \
--with-defaultstemmer=MECAB \
--enable-mecab=yes \
--enable-kill3number=yes \
--with-mecab-config=/usr/local/bin/mecab-config
$ make
$ sudo make install
- Ubuntu-Server 12.04 でコンパイル時のリンクエラー。 Makefile中の -lystem の位置を変える。
Makefile:120行付近 stmd: $(STMDOBJ) libystem.a -- $(LINK) -o $@ $(STMDOBJ) -L. $(LDFLAGS) -lystem $(SLIBS) -lexpat $(LIBS) ++ $(LINK) -o $@ $(STMDOBJ) -L. -lystem $(LDFLAGS) $(SLIBS) -lexpat $(LIBS)
stmdが動作するかどうかの確認
$ cd t
$ ./chk tst2.xml
# <vector>[["コーディング",2],["タイプライター",1],... と出力されればOK
/etc/services に以下を追加
stmd 1234/tcp # stmd
/etc/inetd.conf に以下を追加
stmd stream tcp nowait nobody /usr/local/bin/in.stmd in.stmd
stmdのデーモンを起動
$ /usr/local/bin/stmd -d -u /tmp/stmd.sock
このとき過去にstmdを起動したことがあるとき、/tmp/stmd.sockが残っていますので、起動する前に削除してください。
getassocのインストール
$GETAROOTを/data/lib/getaとしています。
$ tar zxf getassoc-x.x.x.tar.gz
$ cd getassoc-x.x.x
$ ./configure --with-icu-config=/usr/bin/icu-config \
--with-expatdir=/usr \
--prefix=/data/lib/geta \
--enable-allowerror=yes \
--enable-lp64=yes # 64bit OSの場合
$ make
$ sudo make install
- enable-shared=yesでのコンパイル時、次のようなgetassocのリンクエラーが出たら
libnwam.so: undefined reference to `utf8_appendCharSafeBody_48' libnwam.so: undefined reference to `utf8_nextCharSafeBody_48'
- Makefile.inを修正し、./configureからやり直す
Makefile.in: 260 -- $(CC) -o $@ @ALLSRC@ $(SHLDFLAG) ++ $(CC) -o $@ @ALLSRC@ $(SHLDFLAG) @EVAL_BEGIN@@ICUCONFIG@ --ldflags@EVAL_END@
make install後、/etc/apache2/site-available/default に以下を追加
ScriptAlias /getassoc/ /data/lib/geta/wbin/getassoc/