だけど、Windowsで常に使っていて、どうしても使い続けたいものがあったのよ、オレにも。それが英和・和英辞書ビューワだ。研究社の英和・和英中辞典を圧縮してハードディスクに丸飲みして使う、スタンドアロンなヤツだったんだけど、重宝しててね。最近は、もうすっかり赤帽のコンダラ環境も整ってきたんで、そろそろ辞書関係をなんとかしたいなぁと思っていたところだったわけ。で、Slackwareの時にも使っていた辞書システムを赤帽でも使うことにした。なんで「システム」とわざわざ書くかというと、クライアント・サーバの形態だからなのだ。
NDTP(NetworkDisctionaryTransferProtocol)というプロトコルでお喋りするサーバとクライアントで構成されていて、ndtpd
というそのまんまな名前の ndtp デーモンと bookview
というTcl/Tkベースなビューワで辞書サーバに問い合わせて使う。
他にもLinux(ないしはUnixクローン)で辞書を引く方法はたくさんあって、Mule や
Emacs で使う elisp
のパッケージなんてのが有名なんじゃないかと思う。たぶんスタンドアロンでも辞書サーバを立てても使えるようになっているんじゃないか、と思うけど、オレはもうEmacsを捨ててJedな体(笑)なんでこれは使えない。辞書サーバには昔、dserverってのがあったけど、最近は聞かないから、ndtpd
に置き換えられているのかもね。
実は Jed の機能を S-Lang で拡張してやる方法も少しずつだけど覚えてきて、今面白いところなので、そのうち
ndtp を喋るクライアントの機能を Jed
に持たせたろか、などと思っているってのもあって、辞書サーバを立てることにしたんだ。
RPMになっているパッケージがないかと思って探してみたんだけど、どうも見つからなかったから、自分で作っちゃったよ。1次配布元はNDTPD と
BookView だ。
パッケージにしたものをパッケージ置き場に置いておいた。
ndtpd は本体と devel に分ける必要を実はあんまり感じてなかったんだけど、一応、ヘッダ・ファイルやスタティックなライブラリを分けてパッケージにしておけば、いつか使い道を考えつくかな?などと思って、他の赤帽なパッケージの構成をマネてみた。また、bookviewのパッケージは、本来はそれ単体では何の役にも立たないのだが、辞書サーバ1台にクライアント数台で辞書を共有できる、という旨味があるので依存関係を指定せずに単体でインストールできるようにしてある。
で、とりあえずスクリーン・ショット
を見てもらおう。こんな感じ。もちろん単語の検索には正規表現が日本語、英語ともに使えるので非常に便利だ。え〜っと、略語って英語でなんていったっけ?
abbr で始まる単語だったと思うが… なんて場合は、abbr*
として検索してやれば、ちゃんと abbreviation に辿りつける。グ〜だぜ。
さて、設定と運用のほうだが、/etc/ndtpd.conf を書いて、/etc/rc.d/rc.local
ででも ndtpd を起動してやるだけだ。bookview
の方は特に設定は要らない。というか初回の起動時に勝手に作ってくれるので、あらかじめ用意しておく必要はない。
/etc/ndtpd.conf は、オレのパッケージを使う場合は、/usr/doc/ndtpd-2.0.3 に
ndtpd.sample
というファイルがインストールされるので、それをベースに必要な事柄を記述していけば簡単に書けるだろう。ちなみにオレの使っているのはこんな感じだ。
server-name pinga.southpole.com ndtp-port ndtp user nobody group nobody max-clients 3 hosts 127.0.0.1 hosts pingo.southpole.com #hosts !? timeout 900 work-path /var/ndtpd syslog-facility local0 begin book name CHUJITEN title 英和・和英中辞典 path /usr/share/EbxDic max-clients 3 hosts 127.0.0.1 hosts pingo.southpole.com alias-eiwa CHUJITEN alias-waei CHUJITEN alias-kojien KOUJIEN end
で、ここで大事なのは、オレの場合は /usr/share/EbxDic
となっているが、このディレクトリ以下の構成だ。必ず CATALOG
ファイルがこの直下に来るようにしないと正しく動かないので注意が必要だ。オレの場合は
Toru:~$ ls /usr/share/EbxDic -lR total 28 -rw-r--r-- 1 root root 2048 Jul 24 1995 CATALOG drwxr-xr-x 2 root root 1024 May 28 06:54 CHUJITEN/ drwxr-xr-x 2 root root 1024 May 28 06:50 KOUJIEN/ -rw-r--r-- 1 root root 12288 Jul 24 1995 LANGUAGE -rw-r--r-- 1 root root 12288 Sep 26 1995 WELCOME /usr/share/EbxDic/CHUJITEN: total 104195 -rw-r--r-- 1 root root 39553628 May 15 1996 SOUND -rw-r--r-- 1 root root 66723840 Dec 22 1995 START /usr/share/EbxDic/KOUJIEN: total 94250 -rw-r--r-- 1 root root 8192 May 10 1996 LANGUAGE -rw-r--r-- 1 root root 5522540 May 10 1996 SOUND -rw-r--r-- 1 root root 90599424 May 10 1996 START
という具合になっている。で、このファイル名やディレクトリ名が全部大文字なのはちょっとUnixの世界にそぐわない感じだが、これは小文字にすると恐らく動作しなくなるので、ここも注意ね。samba経由でコピーしたりすると、ウッカリすると全部小文字になったりするからねぇ。
基本的に、世の中に出回っている「電子ブック形式」というフォーマットの辞書ならそのままで使えるハズだ。もちろんハード・ディスクにコピーしなくても、CD-ROMをマウントして使ってもいい。
で、いよいよ ndtpd の起動だが、その前に、/etc/services に
ndtp 2010/tcp
という1行を追加しておこう。これはBookViewだけをインストールして、ネットワーク越しに辞書を引きたいマシンでも同様に必要だ。getservbyname()でポート番号を引いてるからね。で、ここまで設定したら、root
になって、/usr/sbin/ndtpd を引き数なしで起動して見よう。だまって起動できたら、/usr/sbin/ndtpdcheck
を実行して、さらにチェックしてみること。/etc/ndtpd.conf
に間違いなどがあると、ndtpcheck が、ndtpd.conf
の何行目が解釈できないか、などを表示してくれる。何も警告の類が表示されなければ、設定はうまくいっていると見ていいだろう。
最後に、/etc/rc.d/rc.local に末尾にでも
if [ -f /var/ndtpd/log/ndtpd.pid ]; then rm /var/ndtpd/ndtpd.pid fi /usr/sbin/ndtpd
などといった感じで追加しておけば、次回リブート時から ndtpd
が使えるようになる。デスクトップとノートPCで辞書を共有して使っているが、ほとんどタイム・ラグなく瞬時に引けるので、とっても快適だ。
メール | 戻る |