llc
发表于 2003-6-20 19:26:16
llc,来看看,安装了你的包之后,刚开始的时候使用没有关系,但是一旦重启之后rfinput能够启动,但是引擎不正常,无法输入汉字,还有很多的其他的不正常,我不知道是不是软件包的问题,我只有删除包,之后一切正常,不知道是不是又是只有我一个人有问题。
怪了,我这里正常,你卸载后再安装试试,如果还不行,可能某些配置出问题了
llc
发表于 2003-6-20 19:37:20
根据luochong、cbnsjtu等朋友的反馈意见,再次修正如下:
1、进行chmod +s /usr/local/rfinput/bin/rfinput,确保无论是哪个用户使用紫光,都能保存自造词组(感谢luochong!)
2、取消中软的启动脚本,改为进入x时,由/usr/local/bin/upimd脚本启动,避免由于第1点带来的用户(新建用户)权限问题
3、增加一个stopupimd脚本,并链接到/etc/rc.d/rc6.d和/etc/rc.d/rc0.d,确保重起或关机时能自动保存用户自造词
为什么用了2,就可以避免1带来的权限问题?
我认为如果采用1的话,最好的方案是保留中软的那个脚本,使得init 345时用root运行upimd -start, 而init 0126时用root运行upimd -stop保留词库。
也就是说,对于llc您初次发布的那个rpm,只要修改chmod +s /usr/bin/rfinput就可以消除词库不能保存的bug(当然会带来普通用户初次使用出问题的bug)。
采用1后,新添加的用户第一次进入kde时,建立的目录属性为root,普通用户无法进入,因此,新添加的用户无法启动输入法,必须要用root将属性改回来才行,为了避免这种情况,我加了个脚本,就是那个/usr/local/bin/upimd脚本,内容如下:
#!/bin/sh
if ! [ -f ~/.rfinput ];then
mkdir ~/.rfinput
fi
if ! [ -f /tmp/upimd.lock ];then
/usr/local/unispim/upimd -start > /dev/null 2>&1
fi
rfinput
改用这个脚本来启动rfinput,这样的话,新增加的用户进入kde时会先mkdir ~/.rfinput,属性属于用户自身,输入法就可以在~/.rfinput写文件爱你,能正常启动
关于为什么取消中软脚本,一来现在输入法已经改成用这个upimd脚本启动,没必要在init那里启动了,二来,根据不少人(至少4人)报告说在重起或关闭系统时,原来的中软脚本并没有执行,当然也不能保存词组,为了稳妥起见,我自己另外搞个脚本,并链接到相应rcx.d里,关闭或重起时屏幕有明显的"starting stopupimd"这样的提示信息,确认保存词组动作已经执行
cbnsjtu
发表于 2003-6-20 21:35:34
终于正常了,多谢llc,
cbnsjtu
发表于 2003-6-21 11:21:56
真的不好意思,我又来了:
这个紫光出来之后,llc打了两个包,都是我第一个报错,十分抱歉:) :mrgreen::mrgreen:
一,我不知道是不是我一个系统的原因,chmod +s之后的引擎,根本无法正常由普通用户启动,我的系统中,
引擎启动之后,终端死掉,根本无法报错,我也无法检测是那里的错误。
二,不知道是不是只有我们几个人在用这个紫光,怎么没有别的人报错?
三,我综合了llc,和luochong做的几个脚本,再加上自己的,已经基本解决了这个问题,方法就是再X启动的
时候启动引擎和rfinput,在kde注销的时候杀掉引擎,重新进入桌面时再重新启动。已经测试过,从普通用
root,root到普通用户,都能正常的把引擎转化为当前用户的进程。
四,如果llc新打的包,都是能正常解决问题,我就不把我的方法贴出来了。本人shell编程太烂了,不好意思贴,太丢脸了。
五,不知道有哪位兄弟也有我这样的问题
llc
发表于 2003-6-21 12:41:57
to cbnsjtu:
注销引擎你是怎样做的?
将你的相关脚本贴出来看看吧
昨晚发现,编译安装了2.4.21内核后,紫光输入法引擎无法启动,并导致词库损坏,幸好备份词库没坏,回2.4.20内核后卸载后重新安装,并将备份词库覆盖回去,才正常了
cbnsjtu
发表于 2003-6-21 13:28:52
一,我用的是2.4.20-8的内核,但是我的紫光引擎在chmod +s之后确实无法启动
二,我没有做脚本,只是综合luochong和llc的脚本,加以修改
三,方法如下,高手看了不要笑:
安装的是最刚开始的时候的包,没有进行chmod +s
然后用luochong的 demon
#!/bin/sh
#
# unispim 紫光拼音输入法
#
# chkconfig: 5 90 10
# description: 紫光拼音输入法
# Start upimd demon
# Current Author: gf <
[email protected]>,llc<www.linuxfans.org>做了一些修改
# source function library
. /etc/rc.d/init.d/functions
RETVAL=0
prog="upimd"
start () {
# Check if /tmp/upimd.lock existed, then delete it.
if [ -f /tmp/upimd.lock ]; then
rm -f /tmp/upimd.lock > /dev/null 2>&1
fi
# Check if upimd existed, then stop it.
if [ -f /usr/local/unispim/upimd ]; then
#Backup first
if [ -f /usr/local/unispim/usrwl.dat.bak ]; then
rm -f /usr/local/unispim/usrwl.dat.bak
cp /usr/local/unispim/usrwl.dat /usr/local/unispim/usrwl.dat.bak
fi
/usr/local/unispim/upimd -stop > /dev/null 2>&1
action $"Starting $prog: " /bin/true
else
action $"Starting $prog: " /bin/false
fi
touch /var/lock/subsys/upimd
}
stop () {
if [ -f /usr/local/unispim/upimd ]; then
/usr/local/unispim/upimd -stop > /dev/null 2>&1
action $"Stopping $prog: " /bin/true
else
action $"Stopping $prog: " /bin/false
fi
#rm -f /usr/local/unispim/usrwl.dat.bak
#cp /usr/local/unispim/usrwl.dat /usr/local/unispim/usrwl.dat.bak
# Check if /tmp/upimd.lock existed, then delete it.
if [ -f /tmp/upimd.lock ]; then
rm -f /tmp/upimd.lock > /dev/null 2>&1
fi
rm -f /var/lock/subsys/upimd
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo "Usage:$0{start|stop|restart|reload}"
exit 1
;;
esac
exit $RETVAL
主要目的是不让引擎启动,还有我没有搞明白reboot重启的时候系统的动作,没有测试,因此保留了这个脚本在init里面,保证正常杀死引擎
然后就是llc兄弟编写的在X启动的时候的脚本还是叫cbnrfinput
#!/bin/sh
if ! [ -f ~/.rfinput ];then
mkdir ~/.rfinput
fi
if ! [ -f /tmp/upimd.lock ];then
/usr/local/unispim/upimd -start > /dev/null 2>&1
fi
rfinput
放在/usr/local/bin里面chmod +755
还有一个脚本是修改自llc的stopupim这个demon,
#!/bin/sh
if [ -f /usr/local/unispim/upimd ]; then
/usr/local/unispim/upimd -stop > /dev/null 2>&1
fi
#rm -f /usr/local/unispim/usrwl.dat.bak
#cp /usr/local/unispim/usrwl.dat /usr/local/unispim/usrwl.dat.bak
# Check if /tmp/upimd.lock existed, then delete it.
if [ -f /tmp/upimd.lock ]; then
rm -f /tmp/upimd.lock > /dev/null 2>&1
fi
rm -f /var/lock/subsys/upimd
我对这个输入法还不大了解,所以没有多大的修改,只是删掉了几个提示
也放在/usr/loacl/bin
里面chmod 755
然后就是改动autostart的那个rfinput.desktop
不贴了
然后就是修改
/etc/X11/gdm/PostSession/Default
#!/bin/sh
PATH=/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin:$PATH
if command -v sessreg > /dev/null 2>&1; then
sessreg -d -w /var/log/wtmp -u /var/run/utmp -x "$X_SERVERS" -h "$REMOTE_HOST" -l $DISPLAY $USER
fi
stopupim
exit 0
只加了一个命令,就是在session会话结束时启动lstopupim由当前用户的权限关闭紫光引擎,重新启动会话的时候由autostart来重新加载引擎,就这么点是我自己的思想,见笑:)这样从启动引擎到关闭引擎,rfinput和引擎都是同一个用户,保存自定义词库没有问题。
按理来说这个应该是gnome的会话管理,但是似乎KDE的会话管理也由它代劳了
这个我不知道请高手指教。但是redhat确实非常倾向gnonme,会话启动时候
输入用户名等界面都是类似gnonme
llc
发表于 2003-6-21 21:02:07
呵呵,也行
pineict
发表于 2003-6-22 10:59:35
看得有点晕,有人跳出来整理一下吗?
我用的是kde,rf是最初那个版本,不知怎么能保存字库。
cbnsjtu
发表于 2003-6-22 11:31:21
看得有点晕,有人跳出来整理一下吗?
我用的是kde,rf是最初那个版本,不知怎么能保存字库。
公社里已经出了修正的版本,装上不就可以了啊
pineict
发表于 2003-6-22 14:53:12
本懒得重新下载。
cbnsjtu
发表于 2003-7-19 01:10:02
不知道还有没有人关心这个输入法,红旗4正式版放出了,不知道有没有解决这个严重bug,如果还没有解决,真的是晕倒了
cbnsjtu
发表于 2003-7-23 12:42:11
我安装了一下新的版本,几乎没有什么改变,如果转换用户,字库还是不能保存,不过这次他们好像使用的是在autostart里面先启动引擎再启动输入法的方法,只要不转换用户就没有问题,有些人说能保存,我也不知道是不是又是我的特殊情况。
好像没有人关心这个输入法了?还是迫于压力?告诉我一声,我也收声先:)
llc
发表于 2003-7-29 16:56:08
没碰linux快一个月,忘光了 :-(
cjacker
发表于 2003-7-29 17:01:21
没碰linux快一个月,忘光了 :-(
你小子叛变了?
呵呵
9月出M 2.0,全新的世界。
赶紧回来给我写代码
llc
发表于 2003-7-29 17:14:12
呵呵,没叛变
这段日子没用linux
再看代码
半点印象都没有
看来要重新适应一段时间了
非常期待M2.0
到时如果能帮上忙就好
现在努力重新适应中...