Tritonn を ports でインストール ! (sjis で) (暫定手順です)

野良 ports で、しかも適当。
(Tritonn のバージョンと portsMySQL のバージョンが合ったので)


まずは、tritonn パッチをあてるために必要な ports をインストール

  • autotools をインストール

# cd /usr/ports/devel/autotools
# make install

  • bison を をインストール

# cd ../bison
# make install


形態素解析とかもしてみたいから

# cd ../../japanese/mecab
# make install WITH_CHARSET=shift_jis

  • mecab-ipadic sjift_jis でインストール

# cd ../mecab-ipadic
# make install WITH_CHARSET=shift_jis


senna は なるべく新しいのがいいのかな

  • senna の少し古い ports があったので、Makefile を見ながら新しいのを作ってみる

# cd /usr/ports/textproc/
# mkdir senna11_4
# cd senna11_4

# vi Makefile

PORTNAME=       senna
PORTVERSION=    1.1.4
PORTEPOCH=      1
CATEGORIES=     textproc
MASTER_SITES=   ${MASTER_SITE_SOURCEFORGE_JP}
MASTER_SITE_SUBDIR=     senna/33763

GNU_CONFIGURE=  YES
USE_GMAKE=      YES
USE_LDCONFIG=   YES
CONFIGURE_ARGS= --with-sennahome=${SENNA_HOME}
CONFIGURE_ENV=  LDFLAGS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}"
MAKE_ARGS=      CFLAGS="${CFLAGS} -I${LOCALBASE}/include ${PTHREAD_CFLAGS}"
WRKSRC=         ${WRKDIR}/${DISTNAME}

SENNA_HOME?=    /var/senna

OPTIONS=        MECAB   "use mecab for morphological analysis" on \
                NFKC    "use nfkc based utf8 normalization" onmkd

.include 

.if ${ARCH} == "ia64" || ${ARCH} == "sparc64"
BROKEN=         Does not compile on ${ARCH}
.endif

.if defined(WITH_MECAB)
CONFIGURE_ARGS+=        --with-mecab
LIB_DEPENDS=    mecab:${PORTSDIR}/japanese/mecab
.else
CONFIGURE_ARGS+=        --without-mecab
.endif

.if !defined(WITH_NFKC)
CONFIGURE_ARGS+=        --disable-nfkc
.endif

.include 

# vi pkg-plist

bin/senna
bin/senna-cfg
bin/sennachk
include/senna/senna.h
lib/libsenna.a
lib/libsenna.la
lib/libsenna.so
lib/libsenna.so.0
@dirrm include/senna

# cp ../senna/pkg-descr ./

# make install


ここかから、MySQLports に手を入れてみるよ

  • mysqlports をダウンロードして ports 用パッチをあてるとこまで

# cd ../../databases/mysql50-server
# make patch

# cd work/mysql-5.0.67
# fetch http://osdn.dl.sourceforge.jp/tritonn/33719/tritonn-1.0.11-mysql-5.0.67.diff
# patch -p1 < tritonn-1.0.11-mysql-5.0.67.diff
# libtoolize -c -f
# aclocal-1.9
# autoheader
# automake-1.9 -c -a -i
# autoconf
# cd sql

  • sql_yacc.yy の bison での conflict が 1個増えるので sql_yacc.yy を240から241に増やす
    • ここ、わかんなくて、すごくハマった

# mv sql_yacc.yy sql_yacc.yy.orig
# cat sql_yacc.yy.orig | sed -e s/240/241/ > sql_yacc.yy

  • mysql のクライアントの ports にもコピー

# cd ../../..
# cp -R work ../mysql50-client

  • mecabsenna を configure オプションに追加する

# echo "CONFIGURE_ARGS+=--with-senna=/usr/local --with-mecab=/usr/local" >> Makefile

  • make するときに、sjis が使えるようにする

# make install WITH_CHARSET=sjis WITH_XCHARSET=all


携帯関連のお仕事をしてると、何かと sjis なので、
sjis が使えるように インストールしました。

  • ports がイマイチよくわからなくて、package 名とかを変えてみたい