20080414

dictd 在RH9.0 上的安装 (转寄)

发信人: tianzhushan (QQ), 信区: LinuxApp
标 题: dictd 在RH9.0 上的安装
发信站: 水木社区 (Wed Feb 22 09:26:46 2006), 站内

*******************************************
本文只能用于交流, 不可用于任何商业目的
该贴同时发在 Emacs 版
*******************************************

本文说明了如何在本地主机建立 dictd 服务器端和客户端.

首先说一下我的系统情况: RedHat 9.0, emacs version 22.0.50

一. 下载
下载安装包

$wget -c ftp://ftp.dict.org/pub/dict/dictd-1.9.15.tar.gz
$tar -xzvf dictd-1.9.15.tar.gz && cd dictd && ./configure && make
$su
$make install

下载词典库

$wget -c ftp://ftp.dict.org/pub/dict/dict-gazetteer-1.3.tar.gz
$wget -c ftp://ftp.dict.org/pub/dict/dict-web1913-1.4.tar.gz
$wget -c ftp://ftp.dict.org/pub/dict/dict-wn-2.0.tar.gz

等等..... 中文字典库可以在
设置
主要是三个文件.
/usr/local/etc/dictd.conf

*******************************************
site 192.168.3.54 # 这个是当前主机的IP
access {
allow *
}
database cdict { data "/usr/lib/dict/cdict.dict.dz"
index "/usr/lib/dict/cdict.index" }
database stardic { data "/usr/lib/dict/stardic.dict.dz"
index "/usr/lib/dict/stardic.index" }
database xdict { data "/usr/lib/dict/xdict.dict.dz"
index "/usr/lib/dict/xdict.index" }
database gazetteer { data "/usr/lib/dict/gazetteer.dict.dz"
index "/usr/lib/dict/gazetteer.index" }
database web1913 { data "/usr/lib/dict/web1913.dict.dz"
index "/usr/lib/dict/web1913.index" }
database wn { data "/usr/lib/dict/wn.dict.dz"
index "/usr/lib/dict/wn.index" }
*******************************************


/usr/local/etc/dict.conf

*******************************************
server localhost { port 2628}
*******************************************


/etc/rc.d/init.d
*******************************************
#!/bin/bash
#
# /etc/rc.d/init.d/dictd
#

PROG=/usr/local/sbin/dictd
EXEC_OPT="--listen 127.0.0.1 -p 2628 -L /var/log/dictd.log -c /usr/local/etc/dictd.conf --locale zh_CN.UTF-8"
PID_FILE=/var/run/dictd.pid
case "$1" in
'start')
if [ -x $PROG ]
then
echo "Start dictd."
$PROG $DICTD_OPT
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
/sbin/pidof $PROG > $PID_FILE
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo "Succeed dictd.pid!"
fi
echo "Succeed!"
fi
else
echo "Fail"
fi
;;
'stop')
if [ ! -f $PID_FILE ]
then
echo "Process dictd does not exist!"
exit 0
fi
DICTD_PID=`cat $PID_FILE`
if [ "$DICTD_PID" -gt "0" ]
then
kill -15 $DICTD_PID 2>&1 > /dev/null
echo "Stopping the dictd succeeded."
fi
rm -f $PID_FILE
;;
*)
echo "Usage: dictd { start | stop }"
;;
esac
exit 0
*******************************************

然后在 /etc/rc3.d 以及/etc/rc5.d 建立 上面 /etc/rc.d/init.d/dictd 文件的链接

重启就可以了.
另外
在emacs 下调用 dictionary.el 时要在.emacs 下加入

*******************************************
;; 这里的"cn-gb-2312" 或许可以换成 gbk 什么的,
;; 如果不加下面的, 中文字典显示成"/232"之类的数字.
(setq dictionary-server "localhost")
(setq dictionary-coding-systems-for-dictionaries
'( ("cdict" . cn-gb-2312)
("stardic" . cn-gb-2312)
("xdict" . cn-gb-2312)
("gazetteer" . utf-8)
("web1913" . utf-8)
("wn" . utf-8)
))
*******************************************
总结

1. 最初没有运行成功的问题出在: --locale 这个参数上面. 如果发现进程中没有 dictd 这一项, 在参数中加上 -v 项.
2. 手册页上面讲的很详细. 没有认真的去研究. 耽误了时间.

--

※ 修改:・tianzhushan 于 Feb 22 09:37:10 修改本文・[FROM: 210.76.124.*]
※ 来源:・水木社区 http://newsmth.net・[FROM: 210.76.124.*]