-1.クイックインストール
0.はじめに
1. 前準備
2. コンパイル
3.インストール
4.運用
5. root になれない場合のコンパイルおよびインストール
付録A 各種 OS での注意点
/*
* INSTALL
*
*/
本文書では、『かんな』のインストールについて説明します。なお、『かんな』
のコンパイルには X11R6 の imake が必要です。
-1.クイックインストール
本文書に目を通すのが面倒で、各種パラメタの設定やインストールディレ
クトリがデフォルトで良い場合は以下を行ってください。インストールは
/usr/local/canna 下に行われます。
(1) SONY NEWS、HP-UX、386BSD、BSD/386、EWS-UX/V(CISC)、FT-UX、JLE な
しの SunOS をお使いの方は、まず付録 A の該当部分に目をお通しくだ
さい。
(2) X11/Xosdefs.h で X_WCHAR を define していたり、cc のオプションに
-DNOTSTDHDRS を付けている場合にはまず付録 A.10 に目をお通しくださ
い。
(3) 以下を実行します。
% xmkmf
% make Makefile
% make canna
(ここに7分〜60分ほどかかります)
% su
# make install
# make install.man
なにかしらエラーが出た場合には以下に目をお通しください。root になれ
ない場合には「5. root になれない場合のコンパイルおよびインストール」
を参照してください。
0.はじめに
『かんな』の環境設定の概要を示します。なお、root になれない場合の手
順を最後に記述しておきますので root の権限がない場合はそこを参照し
てコンパイル・インストールしてください。
1. 前準備
2. コンパイル
3. インストール
4. 運用
『かんな』Version 3.2 に関しては以下のマシンでコンパイル確認してお
ります。
マシン OS コンパイラ
Sparc Station 2 SunOS 4.1.2 + JLE 1.1.2 gcc 2.4.5
Sparc Station 2 Solaris 2.2 (SVR4) cc
Sparc Station 10 SunOS 4.1.3 - JLE 1.1.3 gcc-2.5.8
Sparc IPX SunOS 4.1.1 - JLE 1.1.1
Sparc 1 SunOS 4.1.1 - JLE 1.1.1
SS2 SunOS 4.1.2 - JLE 1.1.2 gcc-2.5.8
HP A 9000/720,730 HP-UX A.08.07 /bin/cc
HP 9000/720 HP-UX8.05 /bin/cc
HP 9000/425 HP-UX9.00 gcc2.5.8
COMPAQ DESKPRO 4/33i UNIX System V Release 4.2 /usr/ccs/bin/cc
SONY NWS-1750 NEWS-OS Release 4.2.1C #0 gcc-2.5.8
NWS-3860 NEWS-OS 4.2R /bin/cc
EWS 4800/35 EWS-UX/V 10.1 (SYSV) /bin/cc
EWS 4800/220 EWS-UX/V(Rel 4.2) R9.1 (SVR4.2) /usr/abiccs/bin/cc
IBM-PC 互換機 FreeBSD 1.1R gcc 2.4.5
IBM-PC 互換機 FreeBSD 1.1.5(RELEASE)
IBM-PC 互換機 BSD/386 v1.1 gcc 1.42
また Version 3.2b1 までの版は以下のマシンでコンパイル確認されていま
す。これらのマシン以外のマシンでコンパイルを行ったり動作させたかた
は是非 Canna@astec.co.jp までご連絡ください。
マシン OS コンパイラ
Sparc Station 2 SunOS 4.1.2 + JLE 1.1.2 gcc 2.4.5
Sparc Station 2 Solaris 2.2 (SVR4) cc
SS 2/10/IPX/IPC SunOS 4.1.3(GENERIC) gcc 2.5.8
Sun SS2 Solaris 2.3 gcc-2.5.8
Sparc Station 10/41 SunOS 4.1.3+JLE1.1.3
SUN 630MP SunOS Release 4.1.3-JLE1.1.3
東芝 SPARC-LT SunOS Release 4.1.1-JLE1.1.1 OS/AS=V4.11
PC NEXTSTEP 3.1J for Intel Processors gcc 2.5.8
PC-486GR+ODP 386bsd-pc98c2 gcc-2.5.8
PC-9801FA(+DX2-64MHz) 386bsd-0.9-pc98-c2 gcc-2.5.8
PC-9801BX PANIX Ver.3.0 gcc
PC-9801 PANIX for98 Ver3.0
486DX33MHz Linux Slackware 1.1.1 gcc 2.5.8
Macintosh LC475 KT7 MachTen R2.1.1VM gcc 2.5.8
HP A 9000/720,730 HP-UX A.08.07 /bin/cc
HP9000 715/50 HP-UX 9.03, 9.05 /bin/cc
SONY NWS-1750 NEWS-OS Release 4.2.1C #0 gcc-2.5.8
SONY NWS-1460 NEWS-OS Release 4.2.1C
NWS-3720 NEWS-OS Release 6.0.1 (SVR4.2) /usr/ccs/bin/cc
DECsystem 5240 日本語ULTRIX 4.3 /bin/cc
IBM Sys./6000 M220 AIX Version 3 /usr/bin/cc
IBM RS/6000 570 AIX Ver3.2.5
EWS 4800/350,210 EWS-UX/V(Rel 4.2) R8.1 (SVR4.2) /usr/bin/cc
EWS 4800/350,210 EWS-UX/V(Rel 4.0) R5.3 (SVR4.0) /usr/bin/cc
EWS 4800/20 EWS-UX/V R9.1/10.1 (SYSV) /usr/bin/cc
『かんな』のコンパイルに関して何らかの問題があった場合にも
Canna@astec.co.jp にお問い合わせください。
Canna@astec.co.jp は『かんな』に関するメーリングリストです。
Canna@astec.co.jp に加入なさりたい場合には
Canna-request@astec.co.jp までお申込ください。
X11R5 にコントリビューションした物件は、物件自体にはバージョンが明
記されていなかったのですが、Version 1.2 ということにします。
Version 1.2 から Version 2.2 への変更点、およびそれ以降の変更点につ
いては CHANGES.jp をご覧ください。
1. 前準備
1.1 Canna.conf の設定
Canna.conf ファイルを書き換えて、『かんな』システムをインストールす
るディレクトリなどを指定します。
cannaBinDir コマンドをインストールするディレクトリです。
cannaSrvDir cannaserver および cannakill をインストールするディ
レクトリです。
cannaLibDir 『かんな』の種々のファイルをインストールするディレ
クトリです。
cannaManDir マニュアルページをインストールするディレクトリです。
cannaIncDir インクルードファイル等をインストールするディレクト
リです。
libCannaDir libcanna 等ライブラリ等をインストールするディレク
トリです。
ErrDir ログファイルをインストールするディレクトリです。
LockDir ロックファイルをインストールするディレクトリです。
wcharDefinition wchar_t としてシステムのものを使うかどうかを指定し
ます。
Wlib wchar_t 関連の関数が入っているライブラリを指定しま
す。libc に入っている場合にはブランクのままにして
おきます。 System V では通常 -lw です。
JapaneseLocale 日本語を使うときの LANG 環境変数の値を指定します。
cannaOwner 辞書とかな漢字変換サーバのオーナを指定します。4.1
の項も参照してください。
cannaGroup 辞書とかな漢字変換サーバのグループを指定します。
4.1 の項も参照してください。
pointerIntegerDef
ポインタのサイズが long のサイズよりも大きい場合で、
long long 型が存在する場合はここに -DBIGPOINTER を
定義してください(例えば SX3 の SUPER-UX の場合)。
cannaDsoRev shared library のリビジョンを指定します。so.1 であ
れば 1 です。
sharedLibExtension
shared library の拡張子を指定します。通常は so.1
などが使われます。 HP-UX では sl です。
DicDir 辞書をインストールするディレクトリです。
LockFile ロックファイルの名前です。
JAPANESEMAN マニュアルページをインストールする時に日本語のマニュ
アルページをインストールするか、英語のマニュアルペー
ジをインストールするかを示します。このパラメタに関
しては #define するかしないかにより動作が切り替わ
りますのでご注意ください。
日本語のマニュアルページに対して英語のマニュアルペー
ジは不十分ですのでご注意ください。
エンジン切替え機能を用いる場合には以下の設定も必要です。エンジン切
替え機能を用いない場合には設定は不要です。エンジン切り替え機能を用
いる場合には別のドキュメント doc/misc/engine.tx もご一読ください。
engineSwitch かな漢字変換エンジンの切り替え機能を利用するかどうか
を指定します。指定は #define するかしないかで行い
ます。
kinput2SrcDir kinput2 のソースが置いてあるディレクトリを指定しま
す。
wnn4SrcDir Wnn4 のソースが置いてあるディレクトリを指定します。
sj3SrcDir Sj3 のソースが置いてあるディレクトリを指定します。
例としてデフォルトの設定を以下に示します。
cannaBinDir = /usr/local/canna/bin
cannaSrvDir = /usr/local/canna/bin
cannaLibDir = /usr/local/canna/lib
cannaManDir = /usr/local/canna/man
cannaIncDir = /usr/local/canna/include/canna
libCannaDir = /usr/lib
ErrDir = /usr/spool/canna
LockDir = /usr/spool/canna/lock
wcharDefinition = -DCANNA_WCHAR
Wlib =
JapaneseLocale = japan
cannaOwner = bin
cannaGroup = bin
pointerIntegerDef =
sharedLibExtension = so.1
cannaDsoRev = 1
DicDir = $(cannaLibDir)/dic
LockFile = .CANNALOCK
#define JAPANESEMAN
/* #define engineSwitch */
kinput2SrcDir = /work/X11R5/contrib/im/kinput2
wnn4SrcDir = /work/X11R5/contrib/im/Xsi/Wnn
wcharDefinition は、OS の wchar_t 定義と mbstowcs などの関数定義を
用いる時には何も指定しません。OS が wchar_t の定義を行っていなかっ
たり、mbstowcs などの関数を持っていなかったり、あるいは mbstowcs を
持っていても日本語環境 (/usr/lib/locale/ja_JP など)を用意していない
場合には -DCANNA_WCHAR を指定してください。
-DCANNA_WCHAR を指定しなかった場合には JapaneseLocale の設定が必要
となります。OS の定義しているロケール名を設定してください。このとき
設定するロケール名は、EUC コードを用いるロケール名を用いてください。
ロケール名には以下のようなものがあります。
japanese SUN JLE
japan NEC EWS4800
ja_JP.EUC SONY NEWS
1.2 widedef.h の設定
本バージョンでは、-DCANNA_WCHAR が付いている場合をデフォルトとし、
wchar_t として 4 バイト幅、32 ビット表現のものを使うようにしました。
OS の wchar_t 表現に合わせたいかたは以下の注意を良く読み、
-DCANNA_WCHAR をはずしてください。
-DCANNA_WCHAR を設定しなかった場合には OS の wchar_t 定義などが正し
く参照されるように注意する必要があります。少なくとも wchar_t の定義
だけは正しく参照されるように canna/widedef.h を修正してください。
特に GCC を用いる時などに、どのヘッダのどの定義が使われるかについて
細心の注意が必要です。
widedef.h の以下の行を、利用する OS に合わせて変更してください。
/* replace widec.h instead, if SunOS 4.0 */
#include <stddef.h>
また、SunOS の JLE なし版や、EWS-UX/V など、wchar_t 型の定義がなさ
れていても _WCHAR_T マクロが定義されていないため wchar_t の typedef
が重複して行われることがあります。wchar_t 型の定義の時に _WCHAR_T
マクロの定義も同時に行われることを確認してください。wchar_t 型の定義
の典型的な例は以下のようになります。
#ifndef _WCHAR_T
#define _WCHAR_T
typedef unsigned long wchar_t;
#endif
SunOS の JLE なし版や、EWS-UX/V などの対処法に関しては本文書の最後
の部分に説明を書きましたので参照してください。
2. コンパイル
コンパイルおよびインストールは X11 の Imakefile をベースに行われま
す。Imakefile は 機種依存をなくした Makefile であり、Imakefile から
そのマシン用の Makefile を作成し、実際の make を行います。Imakefile
から Makefile を作成するプログラムを imake と呼びます。imake (また
は imake を呼び出すシェルスクリプトである xmkmf) はXベースのフリー
ソフトウェアをコンパイルするときに必要となりますので、お持ちでない
かたはこの機会にインストールされることをお勧めします。
ここでは imake を持っていると仮定しての説明を行います。
imake の環境が既に作成されている場合、
xmkmf; make Makefile
make canna
と入力してください。
xmkmf; make Makefile ではトップディレクトリの Makefile を
Canna.conf のパラメタにしたがって、作り直します。
make canna では以下のことが行われます。
(i) make Makefiles
全ての下位ディレクトリにて Imakefile から Makefile を作成し直しま
す。
(ii) make clean
各ディレクトリをクリアします。
(iii) make includes
色々なディレクトリから参照されるヘッダファイルを include ディレク
トリに集めます。また、このとき、ディレクトリ階層の構築も行われま
す。ディレクトリ階層の構築には mkdirhier と言うプログラムが必要で
す。mkdirhier が $(BINDIR)(通常は /usr/bin/X11) に存在することを
確認してください。存在していない場合には、Xウィンドウのリリーステー
プの mit/util 下から入手して $(BINDIR) にインストールしておいてく
ださい。
(iv) make depend
各ディレクトリでのファイルの依存関係を Makefile に反映します。ま
たこのとき yacc や lex の展開やシンボリックリンクファイルの作成な
ども行われます。
ここでも makedepend というプログラムが必要です。存在しない場合に
はXウィンドウのリリーステープの mit/util 下から入手してインストー
ルしておいてください。
(v) make
実際にプログラムのコンパイルを行います。
3.インストール
3.1 通信環境の設定
かな漢字変換サーバとそのクライアント間における通信のためのポート番
号を設定します。/etc/services に以下の1行を追加してください。
canna 5680/tcp
(NIS を使用している場合は、マスタサーバのデータベース等に設定して
ください)。
「かんな」を以前から利用していた場合 /etc/services に同じポート番
号で iroha というサービスが登録されている場合があります。その場合
以前の名前でサービスポートを参照する場合もあると思われますので、そ
の行はそのまま残しておいて、さらに canna に関する行を追加するよう
にしてください。
3.2 インストール
『かんな』をインストールする場合、ソースのトップディレクトリで以下
のいずれかのコマンドを実行してください。
1) make install
以下のうち 3) 〜 5) のインストールをします。
2) make install.man
各コマンドのマニュアルページを cannaManDir で指定されたディ
レクトリにインストールします。
3) make instserver
『かんな』のかな漢字変換サーバ環境をインストールします。
4) make instclient
『かんな』のクライアント環境をインストールします。
5) make instsgs
『かんな』のライブラリやヘッダなどコンパイル環境をインストー
ルします。
それぞれ、Canna.conf に指定したディレクトリにインストールされます。
3.3 各ディレクトリの構成について
以下に『かんな』のソース構成について示します。
-+ lib ----+- RK かな漢字変換エンジンのライブラリです。
| +- RKC かな漢字変換サーバとの通信用のライブラリです。
| +- canna クライアント用のライブラリです。
| +- RKWnn jserver と接続するためのライブラリです
| | (※kinput2 ライブラリが必要です)。
| +- RKSj3 sj3serv と接続するためのライブラリです
| |
| +- RKC16 ┐
| +- canna16│それぞれ wchar_t が16ビット幅のライブラリです。
| +- RKWnn16│
| +- RKSj316┘
|
| これらのライブラリは $(libCannaDir) で指定された
| ディレクトリにインストールされます。
|
+ server かな漢字変換サーバ のディレクトリです。
| $(cannaSrvDir) で指定されたディレクトリにインストー
| ルされます。
|
+ canna ヘッダファイルです。
|
+ cmd ----+* コマンドです。
| $(cannaBinDir) で指定されたディレクトリにインストー
| ルされます。
|
+ ccustom カスタマイズファイル用エディタです。Lisp を意識し
| ないでカスタマイズが行えます。
|
+ dic ----+ ideo
| | かな漢字変換辞書です。
| + phono
| ローマ字かな変換テーブルです。
|
| $(DicDir) で指定されたディレクトリにインストール
| されます。
|
+ canuum 『かんな』版 uum (TTY 用の日本語入力フロントエン
| ド)を作成するためのパッチおよび追加ファイルがあり
| ます。
|
+ sample サンプルクライアントです。
|
+ misc その他のファイルです。
|
+ doc 各種ドキュメントが存在します。
3.4 種々のファイルについて
1) ログファイル
かな漢字変換サーバは起動時にエラーメッセージ等を出力するログファ
イルを作成します。$ErrDir で設定したディレクトリに作成され、ログ
ファイルの名前は "CANNA0msgs" です。
デフォルトでは以下に示すログファイルが作成されます。
/usr/spool/canna/CANNA0msgs
2) ロックファイル
『かんな』では複数のかな漢字変換サーバを同じポート番号で起
動することができません。これを防ぐために、かな漢字変換サー
バは立ち上がると同時にロックファイルを作成します。
ロックファイルは $LockDir/$LockFile で指定されます。デフォ
ルトでは以下に示すロックファイルが作成されます。
/usr/spool/canna/lock/.CANNALOCK
ロックファイルが作成できない場合には、かな漢字変換サーバを
終了します。
※注
ロックファイルやログファイルが作られるディレクトリはデフォルト
では /usr/spool/canna になっていますが、設定によって /tmp など
にする場合が多いようです。したがって、chown や chmod は行わな
いようにしています。これらのディレクトリを /usr/spool/canna な
どに設定する場合にはディレクトリの所有者とパーミッションを適宜
変更して下さい。
3.5 メッセージングについて
『かんな』の辞書メンテナンスコマンドのいくつかはメッセージングが行
われています。したがって、Solaris 2.1 や EWS-UX/V(Rel4.0) などの
System V Release 4 をベースとした OS にて『かんな』を用いる場合に
は LANG 環境変数(あるいはより細かい指定で LC_MESSAGES 環境変数)に
て日本語を指示する文字列(例えば japanese や japan、ja_JP.EUC など)
を指定すると各種メッセージが日本語メッセージに切り替わります(デフォ
ルトは英語です)。
各種コマンド用の日本語メッセージファイルは cmd/catdic/cannacmd.jpn
として存在します。このメッセージファイルを、例えば、
# mkmsgs -i japan cannacmd.jpn cannacmd
と打つことによりシステムのメッセージディレクトリにインストールして
ください(EWS-UX/V(Rel4.0)の例)。
実際にはシステムによって mkmsgs コマンド以外のコマンドを使うことも
あると思います。各システム添付のマニュアルのメッセージングに関する
部分を参照してください。
4.運用
4.1 サーバと辞書のオーナ・グループ
辞書は容易に内容が書き換えられてしまったりしないように、アクセス権
を制限する必要があります。例えばログイン名 canna、グループ名 canna
を作成し、辞書のオーナとグループをそれぞれ canna にしておくと良い
でしょう。
このとき、cannaserver だけは辞書の読み書きができるように、各辞書ディ
レクトリ、辞書ファイルなどは、オーナ・グループ canna に対し読み書
き権を開放し、アザーに対してはアクセス権を与えないようにします。
cannaserver はオーナとグループをそれぞれ canna にし、setuid ビット
と setgid ビットを立てておきます。
System V ではオーナ・グループを canna の代わりに bin にしても良い
でしょう。
辞書や cannaserver のオーナやグループの設定は Canna.conf の
cannaOwner、cannaGroup にて設定します。
以下ではオーナ・グループをそれぞれ bin にする場合で例として説明を
行います。
4.2 かな漢字変換サーバの起動
以下のコマンドを実行して、かな漢字変換サーバを起動します。
# cannaserver
cannaserver は自分自身で fork して、バックグラウンドジョブになりま
すので、cannaserver の起動時に "&" をつける必要はありません。
マシンの起動時に、自動的に cannaserver を立ち上げたい場合には、起
動スクリプト(/etc/rc.local 等)で cannaserver を起動するように設定
してください。その際ロックファイルが残っていると cannaserver が起
動できないので、必ずロックファイルを削除してから起動してください。
例えば、"/etc/rc.local" の中で以下のように設定すると良いでしょう。
rm -f /tmp/.CANNALOCK*
/usr/local/canna/bin/cannaserver
echo 'cannaserver started.'
4.3 かな漢字変換サーバの終了
以下のコマンドを実行して、かな漢字変換サーバを終了させます。
# cannakill
かな漢字変換サーバは辞書情報の一部をメモリ上に保存しています。その
ため、かな漢字変換サーバを直接 SIGKILL などで kill した場合には、
メモリ上の辞書情報が辞書ファイルに書き込まれない場合があります。か
な漢字変換サーバを終了させる場合は、必ず cannakill で終了させるよ
うにしてください。
マシンの shutdown の際に自動的にかな漢字変換サーバを kill するよう
にしたい場合には、shutdown スクリプト等で cannakill を起動するよう
に設定してください。
4.4 辞書関連
(1)かな漢字変換辞書
かな漢字変換辞書の置かれるディレクトリを『辞書ホームディレクトリ』
と言います。これは "$DicDir" あるいは以下のようにコマンド引数で
指定されます。
(例) 『辞書ホームディレクトリ』を /usr/lib/canna/dic にしたい場合。
# cannaserver /usr/lib/canna/dic
『辞書ホームディレクトリ』は以下のように構成されています。
-+-- *.rdic
| ローマ字かな変換テーブル
+-- canna
| システム辞書ディレクトリ
+-- user/*
| ユーザ辞書ディレクトリ
+-- group/*
グループ辞書ディレクトリ
辞書ホームディレクトリとその下にあるディレクトリとファイルはすべ
て、cannaserver が読み書きできるようにしてください(※ 4.1 を参照
してください)。
(2)ローマ字かな変換テーブル
ローマ字かな変換テーブルファイルに関してはデフォルトでは
"/usr/local/canna/lib/dic" の下にあるものを見に行きます。
これは カスタマイズファイル "$HOME/.canna" でローマ字かな変換テー
ブルをフルパスで指定することにより "/usr/local/canna/lib/dic" の
下以外に置くことが可能です。
4.5 初期化(カスタマイズ)ファイル
『かんな』では、ユーザ毎に初期化(カスタマイズ)ファイルを持つことが
できます。このファイルにキーバインドや、ローマ字かな変換テーブル・
かな漢字変換辞書等の設定を行うことによって、ユーザ毎に使用しやすい
環境を整えることができます。
5. root になれない場合のコンパイルおよびインストール
root になれない場合は例えば以下のようにコンパイル・インストールする
と良いでしょう。
5.1 Canna.conf の設定
コマンドや辞書などがインストールされるディレクトリとして、自分のディ
レクトリを指定します。また、辞書とかな漢字変換サーバのオーナとグルー
プを自分のものにします。例えば以下のようになります。
cannaBinDir = /home/kon/canna/bin
cannaSrvDir = /home/kon/canna/bin
cannaManDir = /home/kon/canna/man
cannaLibDir = /home/kon/canna/lib
cannaIncDir = /home/kon/canna/include/canna
libCannaDir = /home/kon/canna/lib
DicDir = $(cannaLibDir)/dic
ErrDir = /home/kon/spool/canna
LockDir = /home/kon/spool/canna/lock
LockFile = .CANNALOCK
wcharDefinition = -DCANNA_WCHAR
Wlib =
JapaneseLocale = japanese
sharedLibExtension = so.1
cannaOwner = kon
cannaGroup = user
さらに以下の記述も Canna.conf に追加してください。
INCROOT = /home/kon/canna/include
また、Canna.conf 内で chown、chgrp、chmod などを行うコマンドが以下
のように定義されていますが、下記のように直してください。
《現定義》
/* 以下の3つは root にならないでインストールするのであれば echo に
変えてください。 */
CHOWN = chown
CHGRP = chgrp
CHMOD = chmod
《root になれない場合の定義》
CHOWN = echo
CHGRP = echo
CHMOD = echo
5.2コンパイルおよびインストール
X11R6 の imake がすでにシステムにインストールされているのであれば、
上記の Canna.conf を設定した後は、
xmkmf
make Makefile
make canna
make install
make install.man
で、コンパイル・インストールが行えます。
X11R6 がマシンにはインストールされていないが、ソースは入手可能であ
ると言う場合は、X11R6 のソースの mit/config および mit/util を持っ
てきて、まず、config の下を make し、次に util の下をコンパイルして
ください。
config の下のコンパイルに関しては、config/Makefile.ini の中の
BOOTSTRAPFLAG を各マシンに応じて必要な修正をして、
make -f Makefile.ini
にて、コンパイルします。
util の下のコンパイルに関しては、util 直下のディレクトリにて、
../config/imake -I../config -DTOPDIR=.. -DCURDIR=Canna32
と打って、Imakefile から Makefile を作った後、
make Makefiles
make
で、util 下のコンパイルを行ってください。その後は util 下の各コマン
ドを自分のホームディレクトリ下の特定のディレクトリに移動し、そのディ
レクトリをコマンドサーチパスに含めておいてください。
また、make canna 中、mkdirhier を使用しますが、このコマンドは X の
$(BINDIR) を用いたフルパスで指定されています。これに対処するために、
config 下の適当なファイルをエディットするか、『かんな』の
Canna.conf にて、
BINDIR = /home/kon/xutil
のようにしてください(ちょっとトリッキーですけど)。
以上の準備ができたら、『かんな』をコンパイルするディレクトリのトッ
プディレクトリ(Canna.conf が存在するディレクトリ)にて、imake を相対
パスで以下のように実行します。
(例)
% ../config/imake -I../config
あとは、
% make Makefile
% make canna
% make install
を実行します。
5.3 通信環境の設定
root の権限がないと /etc/services は書き換えられません。ただし、
/etc/services に記述がなくてもかな漢字変換サーバやかな漢字変換ライ
ブラリはポート番号をとりあえず 5680 番で動くのでとりあえずは運用で
きます。
ただし、この状態では、cannaserver を起動するたびにログファイルにウォー
ニングメッセージが出力されますのでご注意ください。
付録A 各種 OS での注意点
A.1 EWS-UX/V(CISC 版) の場合
EWS-UX/V では stdio.h で wchar_t の定義が行われます。このとき OS の
バージョンによっては _WCHAR_T の定義がなされませんで、以下のように
wchar_t の周辺部分を書き換えてください。
#ifndef _WCHAR_T
#define _WCHAR_T
typedef unsigned short wchar;
typedef unsigned short wchar_t; /* R31KNCK02 */
#endif
/usr/include/stdio.h を直接書き換えるのがためらわれる場合には、2.
の (iii) まで実行した状態で、/usr/include/stdio.h を『かんな』のトッ
プディレクトリの include/ の下に持ってきて書き換え、(iv) 以降を実行
するようにするのも良いでしょう。
A.2 FT-UX/V の場合
-Xc オプションでコンパイルすると、stdio.h と sys/byteorder.h とで
warning が発生します。気になる人はヘッダファイルを修正してください。
A.3 SunOS の場合
・JLE なしの場合
/usr/include/sys/stdtypes.h で wchar_t の定義がありますが、以下のよ
うに変更してください。
#ifndef _WCHAR_T
#define _WCHAR_T
typedef unsigned short wchar_t; /* big enough for biggest char set */
#endif
さらに、wcharDefinition で -DCANNA_WCHAR を定義するのが良いでしょう。
/usr/include/sys/stdtypes.h を直接書き換えるのがためらわれる場合に
は、2. の (iii) まで実行した状態で、/usr/include/sys/stdtypes.h を
『かんな』のトップディレクトリの include/sys/ の下に持ってきて書き
換え、(iv) 以降を実行するようにするのも良いでしょう。
・shared object を利用する場合
shared object を利用する場合には Canna.conf 内の shared object のリ
ビジョンを指定する部分にメジャーリビジョンとマイナーリビジョンの2
つのリビジョンが必要となります。そこで、
cannaDsoRev = 1.1
のように2つのリビジョンを指定するようにお願いします。
A.4 SONY NEWS の場合
SONY NEWS の日本語環境は SJIS と EUC の両方をスイッチすることが可能
です。『かんな』ではソースのところどころに EUC 文字列が入っています
ので NEWS でコンパイルするときは LANG 環境変数に EUC 環境を指定する
名前を設定し、tty の設定を EUC に変えてからコンパイルしてください。
具体的には以下のようにします(csh の場合)。
% setenv LANG ja_JP.EUC
% stty euc sys
A.5 HP-UX の場合 (この部分は松沢氏による記述です)
HP-UX で共有ライブラリを使う場合、ライブラリはオブジェクトがリンク
された時に指定されたパス名で参照されます。例えば、 libcanna.sl を
/usr/local/lib/libcanna.sl という名前で参照させたいのならばリンクを
するときに libcanna.sl を /usr/local/lib に置いてリンクをしなければ
いけません。そこで少々手間がかかりますが、次の手順でのインストール
をお勧めします。
1) Canna.conf で UseInstalledLibCanna を「NO」とします。
2) make canna を行ないます。
3) make install を行ないます。
4) Canna.conf で UseInstalledLibCanna を「YES」とします。
5) make canna を行ないます。
3) make install を行ないます。
今の所 HP-UX には imake は含まれていません。また MIT から頒布された
X11R5 には HP-UX 用の共用ライブラリ作成用のコンフィグレーションファ
イルは含まれていません。これらについては下記サイトからアンサポートで
頒布されているコンパイル済みオブジェクト、コンフィグファイルなどが
参考になるかも知れません。
hpcvaaz.cv.hp.com [15.255.72.15] ~ftp/pub/MitX11R5
A.6 386BSD、BSD/386 など NET/2 をベースとしている OS をお使いの場合、
4.4BSD の stddef.h のなかでの wchar_t の定義は以下のようになってい
ます。
#ifdef _WCHAR_T_
typedef _WCHAR_T_ wchar_t;
#undef _WCHAR_T_
#endif
このままでは他の OS での _WCHAR_T_ の使いかたと矛盾しておりコンパイ
ル時にエラーが発生します。これは近い将来の 4.4BSD では以下のように
変更される予定のようです。
#ifdef _BSD_WCHAR_T_
typedef _BSD_WCHAR_T_ wchar_t;
#undef _BSD_WCHAR_T_
#endif
これにあわせて machine/ansi.h の _WCHAR_T_ を _BSD_WCHAR_T_ に変え
てください。さらに stdlib.h、stddef.h の上記定義を、
#ifdef _BSD_WCHAR_T_
#ifndef _WCHAR_T
#define _WCHAR_T
typedef _BSD_WCHAR_T_ wchar_t;
#endif
#undef _BSD_WCHAR_T_
#endif
のように変更してください。
FreeBSD 1.1.5(RELEASE) では、stdlib.h の中で、
#ifdef _WCHAR_T_
typedef _WCHAR_T_ wchar_t;
#undef _WCHAR_T_
#endif
#ifdef _BSD_WCHAR_T_
#ifndef _ANSI_SOURCE
typedef _BSD_WCHAR_T_ rune_t;
#endif
typedef _BSD_WCHAR_T_ wchar_t;
#undef _BSD_WCHAR_T_
#endif
のようになっているとの報告があります。このような場合は、#ifdef
_WCHAR_T_ からそれに対応する #endif までを削除してから前述の作業を
行うと良いでしょう。
/usr/include/stddef.h 等を直接書き換えるのがためらわれる場合には、
2. の (iii) まで実行した状態で、/usr/include/stddef.h 等を『かんな』
のトップディレクトリの include/ の下に持ってきて書き換え、(iv) 以降
を実行するようにするのも良いでしょう。
また、ccustom を 386BSD で用いる場合には ccustom/README.386 を参照
してください。
A.7 MACHTEN をお使いの場合
上記 A.6 の machine/ansi.h を machine/machtypes.h と読み替えた上で
同じ変更を行ってください。
A.8 NeXTのwcharDefinitionの定義(この部分はSRAのひろのぶ氏による記述です)
1)NeXTSTEP 3.x(J)ではCanna.confのwcharDefinitionにWCHAR16を定義して
コンパイルしてください。
wcharDefinition = -DCANNA_WCHAR -DWCHAR16
2)NeXTSTEP 3.0Jではwchar_tの定義がstddef.hの中の定義とコンフリクト
します。これを避けるには、NeXTSTEP 3.0Jの
/NextDeveloper/Headers/ansi/m68k/stddef.hへ次のパッチを入れててくだ
さい。
------------( cut here )----------------
14a15,16
> #ifndef _WCHAR_T
> #define _WCHAR_T
15a18
> #endif
-------------( end )----------------
# cd /NextDeveloper/Headers/ansi/m68k
# patch stddef.h < /tmp/stddef.h.patch
3) /lib/cppの仕様が違う点
NeXTSTEPは/lib/cppの仕様が違うのでcmd/の下のシェルコマンド
cannakill
dpbindic
mkromdic
canvert
mkbindic
は正しくインストールできません。gnuのCコンパイラのソースコードから
cpp を取り出してくるか、他のマシンで既に作成しているものをコピーし
てくるか、他のマシンのcppをrshで使うかしてみてください。
例: cannakillの場合 --- GNU Emacsのcccpを使う(注意1)
NeXT> cd cmd
NeXT> make clean
NeXT> make CPP="/usr/local/bin/cccp"
(注意1)Emacsのcccpを使うと各ファイルの最初のコメント部分で1部
/**/
というのがファイルの中に残ってしまいます。これはエディタで修正して
ください。
A.9 AIX をお使いの場合(この部分は IBM の古畑氏による記述です)
imake は OS のインストール TAPE の X11dev.src に含まれるので, これ
をインストールするか, MITの R[56] を使うかのいづれかが必要です.
A.10 X11/Xosdefs.h で、X_WCHAR を #define している場合や、cc で
-DNOSTDHDRS が定義されている場合。
X_WCHAR が #define されていたり、NOSTDHDRS が定義されている場合、
Xlib.h をインクルードすると wchar_t の typedef が Xlib.h で行われて
しまうようになります。
X11R6 に付いて来るままの Xlib.h では、wchar_t の typedef が、
#ifndef X_WCHAR
#include <stddef.h>
#else
/* replace this with #include or typedef appropriate for your system */
typedef unsigned long wchar_t;
#endif
となっており、無造作に wchar_t が定義されています。
/* replace this with #include or typedef appropriate for your system */
とある通り、typedef をシステムに合った #include に書き換えるか、少
なくとも typedef を以下のように _WCHAR_T マクロのチェックで囲むかし
てください。
#ifndef X_WCHAR
#include <stddef.h>
#else
#ifndef _WCHAR_T
#define _WCHAR_T
typedef unsigned long wchar_t;
#endif
#endif
システムの Xlib.h を書き換えるのがためらわれる場合は、 2. の (iii)
まで実行した状態で、/usr/include/X11/Xlib.h を『かんな』のトップディ
レクトリの include/X11/ の下に持ってきて書き換え、 (iv) 以降を実行
するようにするのも良いでしょう。
以上
/* Copyright 1994 NEC Corporation, Tokyo, Japan.
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that the above copyright notice appear in all copies
* and that both that copyright notice and this permission notice
* appear in supporting documentation, and that the name of NEC
* Corporation not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission. NEC Corporation makes no representations about the
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
* NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
($Id: INSTALL.jp,v 2.31 1994/07/21 06:49:47 misao Exp $)