最新更新日 2002.01.22.


Canna と kinput2 を利用するようにする
 Solaris8 には Wnn6、ATOK、そして、cssd、htt などとさまざまな日本語入力のシステムがプリインストールされていて、デーモンまで起動されていますが、どれもこれも必要のないものばかり、僕は Canna の人なんじゃ。と言う方は多くないと思います。僕もその一人ですが;-)。

 X 上では Canna 対応の kinput2 が動いていれば余計なデーモンも必要ないのでもっと ps はすっきりするだろう。ってな感じで、今回は Canna と kinput2 をインストールしてみましょう。

 まず、一番最初に xmkmf 回りを直しましょう。openwindow の xmkmf を使うと、cc が /usr/ucb/cc を見に行ってしまうので、xmkmf;make Makefile した時には Makefile 中の CC が CC=/usr/ucb/cc になってしまい、全ての Makefile を直す必要があります。非常にうっとうしいですね。そんな時には Solaris8 のとある設定を変更する事により、/usr/local/bin/gcc をデェフォルトで使うことが出来る様になります。まず、その設定を見直しましょう。

 一個目のファイルですが、/usr/openwin/lib/config/site.def を以下の様に編集します。当初はコメントアウトされているかと思いますがこれを外して有効にします。

----------------
#ifndef HasGcc2
#define HasGcc2 YES
#endif
----------------
 二つ目のファイルは /usr/openwin/lib/config/sun.cf になりますが、これも以下の様に編集します。最初は "pic" が小文字になっているかと思いますが、これを大文字に変更します。
----------------
/*
#define PositionIndependentCFlags -Kpic
*/
#define PositionIndependentCFlags -fPIC
----------------
 この二つの設定により、xmkmf では CC が gcc を使うようになってくれます。嬉しいですね;-)。と、言う事で気を取り直してまずは Canna を make して見る事にしましょう。

Canna のインストール
 Canna の最新版は、Canna35b2.tar.gz になります。http://www.nec.co.jp/canna/c-down.html 辺りからダウンロードしてきましょう。でもって http://www.jaist.ac.jp/%7Efujieda/canna/ を拝見すると、いろいろなパッチがあるみたいでどれを当てたらよいのかよく分からない状態です。しかし、文章を読んでみるとどれも必要みたいだし・・。しくしく。と、言う事で、ここは一発っ!! FreeBSD の ports の patch を当ててしまいましょう;-P

 私はもともとが FreeBSD の人です。FreeBSD には make 一発インストール用の環境が用意されています。そのパッチは上記 web のパッチを全て吸収している事だろう。と勝手に思い込んでみましょう;-)。と、言う事で FreeBSD のパッチを ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/ports/japanese/Canna/files/ から持ってきます。 patch- で始まるファイルが 7 個ですね。でもってついでにcanna.sh.in も持ってきてしまいましょう。後できっと役に立つはず;-)。

 さ、ものは揃いました。では実際に make していきましょう。

----------------
% mkdir canna
% cd canna
% cp ~/patch-* ./
% tar xvzfp ~/Canna35b2.tar.gz 
% cd Canna35p2
% cat ../patch-ac | /usr/local/bin/patch -p0
% cat ../patch-ag | /usr/local/bin/patch -p0
% cat ../patch-ah | /usr/local/bin/patch -p0
% cat ../patch-ai | /usr/local/bin/patch -p0
% cat ../patch-aj | /usr/local/bin/patch -p0
% cat ../patch-ak | /usr/local/bin/patch -p0
% vi Canna.conf
----------------
 ま、Canna.conf の編集の手間が省けると、言う意味ではそこはかとなく有用なパッチです。patch-ac が Canna.conf に当たっています。基本的な設定は FreeBSD と同様になりました。ちろっと見てみると、
----------------
PREFIX?= /usr/local
cannaBinDir = ${PREFIX}/bin
cannaSrvDir = ${PREFIX}/sbin
cannaLibDir = ${PREFIX}/lib/canna
cannaManDir = ${PREFIX}/man
cannaIncDir = ${PREFIX}/include/canna
libCannaDir = ${PREFIX}/lib

ErrDir  = /var/log

wcharDefinition = -DCANNA_WCHAR
Wlib =
JapaneseLocale = japanese
----------------
こんな感じでしょうか。JapaneseLocale だけがちと怪しいので ja にして上げましょう;-)。尚、FreeBSD と同様が嫌いであるならばどんどん手直ししてください。さ、続いてどんどん make します。
----------------
% xmkmf
% make Makefile
% make canna
% su
# make install install.man 
----------------
 なんか、あっさりと、make が終わりました;-)。あとは利用するだけです。先程パッチと一緒に持ってきた canna.sh.in は /etc/init.d/Canna などとしたら起動スクリプトまで用意できました。チョー簡単;-)。では cannaserver を起動してボコボコ打ち込んでみましょう。

 ちなみに正統派の make 方法は以下です;-)。FreeBSD の patch-ac のパッチを当てちゃうと、MakeFlagsToShellFlags が悪さするかも・・。

----------------
% tar zxfv Canna35b2.tar.gz
% cd Canna35b2
% patch -p1 < ../Canna35b2-unoff1.patch
% patch -p1 < ../Canna35b2-unoff2.patch
% patch -p1 < ../Canna35b2-hack1.patch
% vi Canna.conf
% xmkmf
% make Makefile
% make canna
# make install install.man
----------------
Canna 対応版 kinput2 のインストール
 さて、xmkmf が gcc に対応したのと、FreeBSD のパッチを使ったことにより思いの外簡単に Canna のインストールができました。続いて kinput2 を Canna 対応にして利用する事にしましょう。

 kinput2 は ftp://ftp.sra.co.jp/pub/x11/kinput2/ にあるのでそこから持ってくることにします。今回は kinput2-v3.1-beta3.tar.gz を利用してみましょう。

----------------
% tar xvzfp kinput2-v3.1-beta3.tar.gz
% cd kinput2-v3.1-beta3
% vi Kinput2.conf
----------------
 ここでも設定ファイルを変更する必要があります。今回は Canna 対応版ですが、Solaris8 には Wnn6 も入っているで併せて対応する事にしましょう。以下が Kinput2.conf の設定変更例です。
----------------
#define UseWnn6         /* define if you are going to use Wnn6 or above */
#define UseCanna        /* define if you are going to use Canna */
    :
#define WnnLibDir /usr/lib/locale/ja/wnn/ja
    :
WNNSRC = /usr/lib/locale/ja/wnn/demo
WNNINCDIR = $(WNNSRC)/include/wnn
WNNLIB = -L$(WNNSRC)/lib -lwnn
    :
CANNAINSTDIR = /usr/local/lib
CANNASRC = /usr/local/include
CANNALIB = -L/usr/local/lib -lcanna16
----------------
 準備ができたので make します。今回も無事に make できたかと思います。make Makefiles は 最後が複数形です。
----------------
% xmkmf
% make Makefiles
% make
% su
# make install install.man 
----------------
 さ、インストールしてベコベコ打ってみることにしましょう。あ、~/.tcshrc などに、setenv XMODIFIERS "@im=kinput2" などと指定しましょう。CDE 上で利用した時に、もしかして一部のアプリケーションとうまく連動が出来ていなかったりしますか?困りましたね・・。それについては現在調査中です・・(^^;;。

 と、言う事で、Canna が好きな人は Canna を使って kinput2 で文字の入力が出来る様になったかと思います。Solaris8 純正の IME は捨ててこっちに移行しますねぇぇ;-)。

 と、言う事で、おまけ的に Canna 対応の XEmacs-21.4.5 の configure のオプションを掲載しておきます;-)。

----------------
./configure --with-mule --with-canna --with-dragndrop
--with-scrollbars=motif --with-dialogs=motif --with-cde --with-offix 
--with-site-lisp --with-xface
----------------
おまけの esecanna
 Canna が動く様になったので文字入力時のキーバインドは Canna になりました。しかし、Canna の辞書はあまり頭がよくないことで有名です(^^;;。辞書は Wnn6 を使ってキーバインド(UI)部分は Canna で使えないかな。と、言う問題を解決するのが esecanna です。ここではちろっとその事について書いてみたいと思います。

 esecanna 自体は http://esecanna.netfort.gr.jp/download.html からダウンロードできます。ここから、esecanna_1.0.1.tar.gz と、Wnn6 のモジュールである esecanna-module-wnn6_1.0.0.tar.gz をダウンロードしてきます。

 まず、esecanna_1.0.1 は以下の要領で make 出来ます。./configure を走らせた時に必要なライブラリが存在しないからなのか、エラーが出て止まってしまいます。そんな時には、Makefile の LIBS に -lnsl -lsocket を追加するとよいでしょう。

----------------
% tar xvzfp esecanna_1.0.1.tar.gz
% cd esecanna_1.0.1
% ./configure
% gmake;gmake install
----------------
 と、言いつつどうやらこれだけでは Canna のライブラリが見つからずダメの様です。デェフォルトの LD_LIBRARY_PATH には /usr/local/lib が入ってないので、

setenv LD_LIBRARY_PATH /usr/lib:/usr/local/lib:/usr/openwin/lib:/usr/dt/lib

してあげましょう。でもってこれで gmake すると、今度は esecannaserver ができますがこれはまだダメダメな esecannaserver でした。では、私の場合、どうしたか?と言うと、以下の二つの環境変数を与えてから configure してgmake しました。

LD_LIBRARY_PATH=/usr/lib/locale/ja/wnn/lib:/usr/lib:/usr/local/lib:/usr/openwin/lib:/usr/dt/lib
LIBS=-lnsl -lsocket -lwnn -L/usr/lib/locale/ja/wnn/lib

 これで、canna のライブラリが見つかって wnn のライブラリが見つかりました。後は gmake install すれば OK です。

 続いて Wnn6 モジュールですが、これは手ごわいです:-(。libwnn が見つけられないと言われて configure がぶっこけます。INSTALL.jp に書かれている様に -L/lib/locale/ja/wnn/lib を設定して走らせてもやはりぶっこけます。どうやら設定方法が違うみたいです。

LIBS=-lnsl -lsocket -lwnn -L/usr/lib/locale/ja/wnn/lib -R/usr/lib/locale/ja/wnn/lib

 と環境変数を設定すると、Makefile を生成してくれます。すかさず、gmake とか叩くと、今度は Wnn6 の include ファイルが見当たらない。と言われるので Makefile に -I/usr/lib/locale/ja/wnn/demo/include を付加して gmake します。ふみふみ。これでどうやら wnn6.so が出来たみたいなのでいよいよ gmake install する事にしましょう。

 さてと、準備が整ったので esecannaserver を起動しつつ XEmacs でも起動して文字でも打ってみるべと言う状態です。esecannaserver が libwnn.so.1 が無いよ。と言って来たら、LD_LIBRARY_PATH に /usr/lib/locale/ja/wnn/lib を指定する必要があります。

 起動した時に「部首用のコンテクストを作成できませんでした」とか言われた場合には、esecanna-module-wnn6 の make が失敗しています。そんな時には Makefile 中の -DWORDS_BIGENDIAN=1 を取ってあげましょう。もしくは以下の二つを参考にしてみてください。

http://my-note.net/ml/esecanna/list/msg00101.html
http://my-note.net/ml/esecanna/list/msg00163.html

 これで、かな漢字変換のデーモンに Wnn6 を使い、キーバインドは Canna を利用。と、言う状態になりました。素晴らしいですね。Canna は XEmacs の make に必要なライブラリとインクルードファイル目当てでしかありません。ま、それはそれでよしとしておきましょう;-)。ちょっとは日本語環境が充実したかな;-)。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.