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
到时如果能帮上忙就好

现在努力重新适应中...
页: 1 2 3 4 5 6 [7] 8
查看完整版本: 跑在magic1.1f上的紫光输入法