辞書サーバの設定

主に lookup-el でもって辞書を引くために.

ndtpd の導入

$ sudo -s
# apt-get install ndtpd

デフォルトでは ndtpd(サーバ)が inet 経由で呼び出されるようになる. /etc/hosts.(allow|deny) でアクセスの設定をしておけば良い.

とりあえず, 外部からアクセスする必要は無いので

$ cat /etc/hosts.allow
…
ALL: localhost  :allow
$ cat /etc/hosts.deny
…
ALL: ALL

のままで.

辞書の設定|軽量化

軽量化には epwutils を使用する.

$ sudo -s
# apt-get install epwutils

ここでは広辞苑第四版で, 付属資料や書籍選択画面等を削除する.

$ mount /media/cdrom
$ cp -r /media/cdrom/* ~/tmp/koujien
$ catdump ~/tmp/koujien/catalogs > catalogs.txt
$ vi catalogs.txt
…
$ cat catalogst.txt
; 電子ブック/EPWING カタログ内容 (generated by catdump v1.1)

[Catalog]
FileName   = catalogs
Type       = EPWING2
Books      = 1

[Book]
BookType   = 0002 (00:国語辞典, 02:EPWING2)
Title      = "広辞苑 第四版"
Directory  = "KOUJIEN"
InfoBlock  = 0001
ZenGaiji   = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji   = "GA16HALFGA24HALFGA30HALFGA48HALF"
BookFile   = "HONMON"
Reserved1  = 000B0000

とこんな感じに. そしてカタログの再生成と不要な物の削除

$ catdump -u catalogs.txt catalogs
$ rm -rf furoku guide bkslct
$ ls
catalogs koujien
$ du -h
1.3M    ./koujien/gaiji
434M    ./koujien/data
435M    ./koujien
435M    .

辞書は /usr/local/share/dict 以下に置くことにする.

$ sudo -s
# mkdir -p /usr/local/share/dict/koujien
# cp -r ~/tmp/koujien/* .
# vi /etc/ndtpd/book.d/koujien

中身はこんな感じ.

#
# 広辞苑第四版
#
begin book
   name		koujien4th
   title	広辞苑第四版
   path		/usr/local/share/dict/koujien
   hosts	*
end

その後で辞書の更新と確認. telnet で接続して t を押すと辞書の一覧が出てくるハズ.

# update-ndtpd.conf
$ telnet localhst ndtp
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 t
 1       広辞苑 第四版  koujien4th/koujien      0       1       900
 $*

lookup の設定.

lookup-el は emacs の辞書クライアント.

$ sudo -s
# apt-get install lookup-el

設定は以下の様な感じで.

;;; ========================================================================
;;; lookup-el
;; オートロードの設定
(autoload 'lookup "lookup" nil t)
(autoload 'lookup-region "lookup" nil t)
(autoload 'lookup-pattern "lookup" nil t)
;; キーバインドの設定 => sdic より移行. キーバインドを sdic 風に
(global-set-key "\C-cw" 'lookup-pattern)
(global-set-key "\C-cW" 'lookup-word)
;(define-key ctl-x-map "l" 'lookup-pattern)       ; C-x l - lookup
;(define-key ctl-x-map "y" 'lookup-word)       ; C-x y - lookup
;(define-key ctl-x-map "\C-y" 'lookup-pattern)   ; C-x C-y - look
;; 検索エージェントの設定 (ndtpd経由で使う)
(setq lookup-search-agents '((ndtp "localhost")))

とりあえず, \C-x-l でリージョン検索できるように.