freebsd-ports/japanese/dserver/files
..
deinstall.sh.inetd
deinstall.sh.standalone
patch-aa
patch-ab
patch-ac
patch-ad
README.FreeBSD-setup.euc
setup.sh.inetd
setup.sh.standalone

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

                 Dserver FreeBSD portセットアップについて

                                                             3.Nov.1996
						Revised	    20.Dec.1996
						Revised	    31.Jan.1998
                                         三田吉郎 <mita@jp.FreeBSD.org>
	     Special thanks to MIHIRA Yoshiro <sanpei@yy.cs.keio.ac.jp>

	目次
	I. インストール
	   I.1. setup.sh の具体的な作業
	   I.2. 辞書のコピー・マウント
	   I.3. dserver_access ファイルの整備
	   I.4. サーバの動作テスト
	II. 使う
	   II.1. kenjiro
	III. 削除(uninstall)
	IV. `inetd起動のdserver'を作る方法
	    IV.1. `inetd起動のdserverとは何か'
	    IV.2. standaloneとinetdとどちらを選択するか
	    IV.3. inetd起動のdserverを作る
	    IV.4. 初期設定スクリプトの違い.
	V. エラーとその対策
	    V.1. 辞書を10種類以上にしたら途端にBus Errorで落っこちます

※ 文中の${PREFIX}は,/usr/localに読み変えてくださいportsを利用して
   コンパイルすると,${PREFIX}を/usr/local以外にも自分の好みの
   ディレクトリに設定することができます.

I. インストール

    dserver の ports を インストールした後に必要な作業は次の通りで
  す.

	1: [/etc/services] に ndtp プロトコルのエントリを追加
	2: dserver 起動用スクリプトの準備
	3: 辞書をコピーまたはマウント

    これらの作業は, [${PREFIX}/lib/dserver/setup.sh] を起動すると, 1
  2 までを自動的に設定してくれます.

  ※ ${PREFIX}
     ここで ${PREFIX} とは ports をコンパイル時の環境変数 PREFIX を
     示します. packages では, [/usr/local] となります.  上記の場合,
     [/usr/local/lib/dserver/setup.sh] と適時読みかえてください. 

I.1. setup.sh の具体的な作業

    この setup.sh では, 具体的に次の作業を行います.

1: [/etc/services] の末尾に次の行を追加します.  

-----
ndtp	2010/tcp	#Network Dictionary Transfer Protocol
-----
   ※ この行は, dserver を利用する*全てのマシン*に追加する必要があります.

2: [${PREFIX}/etc/rc.d/dserver.sh] に次の行を追加します. 

    これにより, OS ブート時に dserver が自動的に起動します.

-----
#!/bin/sh
# dserver - dictionary server
case "$1" in
start)
	if [ -x /usr/local/lib/dserver/dserver ] ; then
		/usr/local/lib/dserver/dserver &
		echo -n ' dserver'
	fi
	;;
stop)
	;;
*)
	echo "Usage: setup.sh.standalone {start|stop}" >&2
	exit 64
	;;
esac

exit 0
-----

I.2. 辞書のコピー・マウント

    [${PREFIX}/share/dict/cdrom/] に,それぞれの辞書をマウントします.
  [${PREFIX}/lib/dserver/dserver_access] のエントリと整合性を持たせる
  ようにしてください.

    makedic というプログラムを使うと,辞書サイズを概ね 1/3 に圧縮す
  ることができます.使い方は簡単で次の通りです. 

-----
makedic [オリジナルの辞書ファイル名] [新しい辞書ファイル名]
-----

  ※: 辞書のライセンスによる圧縮の制限
      辞書をハードディスクにコピー,圧縮してよいかどうかの対応ですが, 
    広辞苑は×,研究社の事典は○であるなどと,各社異なります.
 [${PREFIX}/lib/dserver/doc/README.dserver] を御覧下さい.

I.3. dserver_access ファイルの整備
    dserver は, ${PREFIX}/lib/dserver/dserver_access というファイルで,
        1. どのマシンからのアクセスを受け付けるか
        2. どういう名前のファイルを辞書ファイルとして登録するか, 
           その辞書ファイルへ何人のアクセスを同時に受けるか,
           辞書内部に埋め込まれた外字を, どうやって真似て表示するか
    といった情報を取得します.  従って, このファイルは自分で書く必要があります.

   一行一行, 辞書エントリやアクセス許可ホスト名を並べて書きます.
   順番はどうでもいいです.
  附属の ${PREFIX}/lib/dserver/dserver_access が参考になるでしょう.
   1. どのホストからのアクセスを受け付けるか
        アクセスを受け付けるホスト名を書きます.

-----
localhost 
-----

        とするのが一般的で, こうすると dserver をインストールした
        そのホストからアクセスできるようになります.  
   2. 辞書のエントリ

-----
#DICT eiwa /cdrom/chujiten/data/honmon "研究社中英和" 25 600
#DICT waei /cdrom/chujiten/data/honmon "研究社中和英" 25 600
-----

のように, #DICT につづけて, 辞書にアクセスするための名前,
辞書本体のファイルのありか, 辞書名, 同時にアクセスできるユーザ数,
タイムアウトまでの時間を記入します.  

ところで, 以上の例は, 
パシフィックハイテックさん htt://www.pht.co.jp/ が出している,
FreeBSD Pro 2.2.6-R に付いてくる, EPWING 版 研究社新英和辞典6.4版
用の設定です. それで, この辞書で, 別 port になっている diclookup-mule
(ja-diclookup-mule*という名前です) 和英検索をするためには, 
${PREFIX}/lib/dserver/waei.tbl というファイルの先頭の,

-----
#kana=hyouki
-----

という行のコメントを外して,

-----
kana=hyouki
-----

とする必要があります. 参考までに.

I.4. サーバの動作テスト

    desrver を立ち上げるとdserver が使えるようになるはずです.次の
   ように打ち込んで,簡単な接続試験をしてみましょう.

-----
telnet localhost ndtp<リターン>
-----

1: 接続試験その 1, アクセス可能かどうか

    接続した上で A<リターン> と打ち込むと,[dserver_access] ファイル
  でアクセス許可が出ている場合は $A という返事が帰って来るはずです.

-----
% telnet localhost ndtp
lavender: {1234} telnet localhost ndtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
A
$A
-----

  ※: アクセス許可ファイルの記述の注意

      dserver の仕様として, アクセス許可のチェックは IP アドレスでは
    なく, ホストネームで行われています. そのため, 次の場合例のように 
    localhost とだけ書いてもうまくアクセス許可を得れない場合がありま
    す.

	0) [/etc/hosts] に次のような行が含まれる. 

例
--------
127.0.0.1               localhost.rad.cc.keio.ac.jp localhost dserver
--------

	0-1) DNS が使える環境であるが, [/etc/host.conf] で bind より 
           hosts を先に書いている場合. 

	0-2) DNS を使えず [/etc/hosts] だけを参照する場合. 

      その場合には, 次のように [dserver_access] に記述するとアクセス
    許可を得れます.

例: [/etc/hosts] が上記のような場合. 適時 rad.cc.keio.ac.jp. を追加
してください. 
-----
localhost.rad.cc.keio.ac.jp
-----

2: 接続試験その 2,  辞書が使用可能かどうか?

    アクセス許可を得た後T<リターン> と打ち込むと,使用可能な辞書の
  リストを得ることができます.

辞書リストの例:
-----
T
 1      研究社中和英
 2      研究社中和英
 3      三省堂クラウン仏和
$*
-----

    辞書をインストールしたにも関わらず利用可能になっていない場合は,
  [dserver_access] ファイルとCDROM のディレクトリ構造を確認してみ
  てください辞書ファイルはstart とか hommon とかいう名前になって
  いますが,このインストール位置が狂っているばあいがよくあります.

   リスト中の漢字はEUC漢字コードを使っていますので
   ktermを`kterm -km euc'で立ちあげたりctrl+中ボタンを押して
   選択するなどしてEUC漢字コードを表示できるようにしてください

II. 使う

II.1. kenjiro

    コマンドラインから引きたい場合は kenjiro<リターン> です.
  【指定辞書無し】と出たときに<ESC>キーを押すと辞書が選択できます.

    リストに無い辞書を読みたい場合はports を用意して make patch の
  後 [${WRKSRC}/clients/kenjiro/config.h] を書き換えてmakeし直します

III. 削除(uninstall)

    削除はインストールの逆を行えばよいわけですが3-1 を自動的に行
  うためのシェルスクリプト,[${PREFIX}/lib/dserver/deinstall.sh] を
  用意しておきました.

    その後でpkg_deleteを行えばOKのはずです

IV. `inetd起動のdserver'を作る
    このportsでは特に指定しない限り`standaloneのdserver'を
    作るようにしていますが,`inetd起動のdserver'を作ることもできます.

IV.1 `inetd起動のdserver'とは何か?

    これまで説明してきた例ではこのportsでの標準設定である
    dserverをstandaloneで使用するための設定を紹介してきました

    standaloneではプログラムdserverシステムを起動したときから
    システムが終了する時までずっと走っていて,「全ての接続要求を
    一つのdserverが処理」します

    inetdではプログラムdserverは普段は走っておらず接続要求がくるたびに
    inetdから起動されます「別々の接続要求は別々のdserverが処理」します

IV.2. standaloneとinetdとどちらを選択するか
    ライセンス制限(ファイルdserver_accessで辞書を同時に読めるユーザ数を
    制限できる機能です)を使うためには全ての接続要求を一つのdserverが
    処理する必要があるのでstandaloneで立ちあげる必要があります

    inetdではdserverを使っていないときにCDROMを差し替えることができます
    amdと組み合わせるのが便利です

IV.3. inetd起動のdserverを作る

    rootになって/usr/ports/japanese/dserverのディレクトリで
-----
make package
-----
    と入力すると,ファイルを展開した後に,
    standaloneでdserverを動かすように設定するかそれとも
    inetdから接続するたびに呼び出すように設定するかの
    選択画面になります.

----------------- dserver port configuration -----------------
| How do you want to run dserver, standalone or run by inetd?|
|                                                            |
|                  (*) standalone  stanalone                 |
|                  ( ) inetd       inetd                     |
|                                                            |
|                    [  OK  ]       Cancel                   |
--------------------------------------------------------------
    普段はこの画面のようにstandaloneで起動する設定になっていますが
    上下カーソルとリターンキーでinetdを選択すると
    inetdから呼び出す設定になります(下図はinetdを選択したところ)

----------------- dserver port configuration -----------------
| How do you want to run dserver, standalone or run by inetd?|
|                                                            |
|                  ( ) standalone  stanalone                 |
|                  (*) inetd       inetd                     |
|                                                            |
|                    [  OK  ]       Cancel                   |
--------------------------------------------------------------

IV.4. 初期設定スクリプトの違い.

    初期設定スクリプトsetup.sh, deinstall.shは
    inetd起動を選択した場合とstandaloneを選択した場合とで違ったものが
    インストールされます.

    inetd起動用のsetup.shではstandaloneに比べて以下の点が異なっています
* /usr/local/etc/rc.d/dserver.shを作成しない
* /etc/inetd.confへのdserverのエントリを追加する
* inetdを立ちあげ直す(HUPシグナルを送る)

   使い方はinetd, standalone用とも一緒です

V. エラーとその対策
V.1. 辞書を10種類以上にしたら途端にBus Errorで落っこちます

    server2.2-pl2/config.hのMAXDICTの値を10から増やして
    コンパイルし直しましょう.
※dserver_accessファイルの設定を変更している場合バックアップしておきます
-----
% su root
#cp /usr/local/lib/dserver/dserver_access /tmp/dserver_access.orig
# cd /usr/ports/japanese/dserver
# make patch
# vi work/dserver/server2.2-pl2/config.h
# make install
#cp /tmp/dserver_access.orig /usr/local/lib/dserver/dserver_access 
-----

質問不平不満など御座いましたらmita@jp.FreeBSD.orgにどうぞ