Practice of Programming

プログラム とか Linuxとかの話題

sumibi-server入れてみた

sumibi.org の sumibi-server です。結構精度の高い変換をしてくれるので、何年か前に入れようと思ったものの、忘れてて、ようやく、今入れてみました。

インストール先は、Core2Duoなんだけど、Ubuntu 9.10 の64bit版入れたら、architectureが amd64かいっ!
って驚いたものの、別に問題ないって言う意見に流されてみた、なマシンです。


インストール方法

で、はまったところ。

  • Gauche-kakasiが見つからない。
    • 見つかったものの、0.1 が入らなかったので、0.0 入れました。kakasi も自分でbuild
  • Gauche-kakasi を入れても、platform-check にひっかかったので、その行を削除

くらいかも。必要なもの一覧。

とても、ひどい install script

#!/bin/sh

ADMIN=$1;

if test "$ADMIN" = '';
then
  echo "need mysql admin user name.";
  exit 1;
fi

VERSION=0.7.4
SUMIBI="http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fsumibi%2F26504%2Fsumibi-$VERSION.tar.gz";
SUMI='http://sumibi.org/sumibi/sumibi_dist/sumi_bincho_1_medium.sql.gz'
GAUCHE_KAKASI='http://sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Fgauche%2FGauche-kakasi%2F0.0%2FGauche-kakasi-0.0.tgz'
GAUCHE_MYSQL='http://www.kahua.org/download/dbi/Gauche-dbd-mysql-0.2.2.tgz'
KAKASI='http://kakasi.namazu.org/stable/kakasi-2.3.4.tar.gz'

wget $SUMIBI && wget $SUMI && \
echo 'create database sumi_bincho_1 DEFAULT CHARACTER SET utf8;' | mysql -u $ADMIN \
&& gunzip sumi_bincho_1_medium.sql.gz \
&& (echo 'Now set sumi into mysql. It may take long time ...'; \
    mysql -u $ADMIN sumi_bincho_1 < sumi_bincho_1_medium.sql \
    echo 'Now setup sumibi server ...') &&
sudo apt-get install gauche \
&& sudo apt-get install gauche-dev \
&& sudo apt-get install libmysqlclient15-dev \
&& sudo apt-get install libkakasi2-dev \
&& wget  $GAUCHE_MYSQL && tar zxvf Gauche-dbd-mysql-0.2.2.tgz \
&& (cd Gauche-dbd-mysql-0.2.2; ./configure && make && sudo make install) \
&& wget $KAKASI && tar zxvf kakasi-2.3.4.tar.gz \
&& (cd kakasi-2.3.4; ./configure --prefix=/usr/local/kakasi/ && make && make install) \
&& wget  $GAUCHE_KAKASI && tar zxvf Gauche-kakasi-0.1.tgz \
&& (cd Gauche-kakasi-0.1; ./configure --with-kakasi=/usr/local/kakasi/ && make && sudo make install) && \
tar zxf sumibi-$VERSION.tar.gz \
&& (cd sumibi-$VERSION; make install)

ほんと、ひどいな、これ。


とりあえず以下のようなパッチを当てて、動かせるところまでいった。


パスが違う。

--- server/soap/sumibi.cgi      2007-07-29 09:04:00.000000000 +0900
+++ /usr/lib/cgi-bin/sumibi.cgi 2010-02-02 03:12:54.732498902 +0900
@@ -62,7 +62,7 @@
 
        local( *Reader, *Writer );
        if ( $SUMIBI_COMMAND =~ /@/ ) {
-           $SUMIBI_COMMAND = "/usr/local/bin/gosh -I./lib ./sumibi";
+           $SUMIBI_COMMAND = "/usr/bin/gosh -I./lib /usr/local/bin/sumibi";
        }
        $pid = open2( *Reader, *Writer, $SUMIBI_COMMAND );
        my( $w );

以下の設定は、別ファイルなんだけど、どこに置けばいいのかわからなかったので、直接書いてしまった。

--- sumibi      2010-02-02 02:02:14.063749735 +0900
+++ /usr/local/bin/sumibi       2010-02-02 03:06:54.122500219 +0900
@@ -22,6 +22,21 @@
 ;; along with Sumibi; see the file COPYING.
 ;;
 ;;
+;; sumiyaki db
+(define sumibi-sumiyakidb-host       "localhost")
+(define sumibi-sumiyakidb-name       "sumi_bincho_1")
+(define sumibi-sumiyakidb-user       "root")
+(define sumibi-sumiyakidb-password   "")
+
+;; sumibi db
+(define sumibi-sumibidb-host         "localhost")
+(define sumibi-sumibidb-name         "sumi_bincho_1")
+(define sumibi-sumibidb-user         "root")
+(define sumibi-sumibidb-password     "")
+
+;; debug flag on
+; (set! sumibi-debug #f)
+
 (use text.parse)
 (use gauche.parseopt)
 (use gauche.charconv)

localhostなので、非sslの警告不要。

--- client/elisp/sumibi.el      2007-07-29 09:04:00.000000000 +0900
+++ /home/ktat/.emacs.d/sumibi.el       2010-02-02 02:58:05.912497205 +0900
@@ -1217,12 +1217,12 @@
 ;  (print last-command)                        ; DEBUG
 
   ;; 非SSLの警告を出す
-  (when (and (string-match "^[ ]*http:" sumibi-server-url)
-            (> 1 sumibi-timer-rest))
-    (progn
-      ;; 警告を出してポーズする
-      (message "sumibi.el: !! 非SSLで通信する設定になっています。 !!")
-      (sleep-for 2)))
+;  (when (and (string-match "^[ ]*http:" sumibi-server-url)
+;           (> 1 sumibi-timer-rest))
+;    (progn
+;      ;; 警告を出してポーズする
+;      (message "sumibi.el: !! 非SSLで通信する設定になっています。 !!")
+;      (sleep-for 2)))
 
   (cond 
    ;; タイマーイベントを設定しない条件

んー。ちょっと遅いな...。apache/cgiは厳しいと思いました。
DBにはindex貼られたりはしているのかな...? 眠いので、ダウンです。