Kubuntu 9.04升级后永中出错的解决办法

各种窗口管理器和美化相关
回复
kris8487
帖子: 18
注册时间: 2008-10-31 17:45

Kubuntu 9.04升级后永中出错的解决办法

#1

帖子 kris8487 » 2009-07-11 9:23

今天终于找到永中在我的Kubuntu中出错的原因了,在这里记录下,以免日后遗忘。

问题描述:
自从我的Kubuntu 9.04升级到kde 4.2.4界面后我的永中 Office就开始出问题了。首先是打开MS的文档不能保存,然后逐步发展到一保存MS的文档永中就自动退出。后来我以为是升级后永中组件出了问题,于是手动卸载了永中(好像Kubuntu下rmeio一点用都没有)。这不卸载还好,一卸载连安装都出错了。安装出错表现为在最后一步配置的时候,还没配置完就自动退出,而且终端里还有如下出错信息:

# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xb7d2c195, pid=4910, tid=2466642832
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_01-b08 mixed mode)
# Problematic frame:
# C [libX11.so.6+0x1c195] XFreeFontSet+0x15
#
# An error report file with more information is saved as hs_err_pid4910.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
setup: line 20: 4910 忽略 $java_home/bin/java -jar $progdir/dispose.jar $ARG1 2>/dev/null

这可关系到平时办公阿,于是我装了个VirtualBox3.0虚拟了XP装了个永中先用着,有时间的时候就来倒腾linux下的永中,半个月过去了终于倒腾出了点道理,也找到了解决办法。

解决办法:
第一步,修改永中的安装脚本setup.sh(注意红色部分,出错的原因就是这里了。永中的开发者只顾虑到了Gnome界面的用户,因此在kde界面安装配置时出错,导致永中不能正常使用,所以需要把这几行注释掉,嘿嘿,当然删除也是没问题的。)
命令:Dolphin进入永中解压后的文件夹右键,在“打开方式”中选择“kate”

修改后:
#!/bin/bash
INSTALL_INFO_FILE=/etc/Evermore/EIOffice/installinfo.cfg
FONT_PATH=/usr/X11R6/lib/X11/fonts/TrueType
LOG_FILE=/tmp/setuplog.txt
ARG1=$1

unzipJar () {
JRE_PATH=/tmp/EIOffice/Jre
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/plugin.pack.gz $JRE_PATH/lib/plugin.jar
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/rt.pack.gz $JRE_PATH/lib/rt.jar
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/charsets.pack.gz $JRE_PATH/lib/charsets.jar
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/deploy.pack.gz $JRE_PATH/lib/deploy.jar
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/javaws.pack.gz $JRE_PATH/lib/javaws.jar
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/ext/tools.pack.gz $JRE_PATH/lib/ext/tools.jar
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/ext/bcprov-jdk14-124.pack.gz $JRE_PATH/lib/ext/bcprov-jdk14-124.jar
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/ext/jmf.pack.gz $JRE_PATH/lib/ext/jmf.jar
$JRE_PATH/bin/unpack200 -r $JRE_PATH/lib/ext/jai_core.pack.gz $JRE_PATH/lib/ext/jai_core.jar
}

newInstallMode () {
if [ ! -e $FONT_PATH ];then
echo "create font dir" >> $LOG_FILE
mkdir -p $FONT_PATH
fi
echo "start copy fonts" >> $LOG_FILE
cp $progdir/font/* $FONT_PATH/

echo "start unzip Jre" >> $LOG_FILE
unzip $progdir/Jre.zip -d /tmp/EIOffice/ &> /dev/null
unzipJar
java_home=/tmp/EIOffice/Jre

sed -i 's/XINERAMA/FAKEEXTN/g' $java_home/lib/i386/xawt/libmawt.so
echo "start run dispose.jar" >> $LOG_FILE
$java_home/bin/java -jar $progdir/dispose.jar $ARG1 2>/dev/null

####安装FC8,修改libmawt.so
if test -f $INSTALL_INFO_FILE ; then
exec 4<&0 0<$INSTALL_INFO_FILE
read line1
sed -i 's/XINERAMA/FAKEEXTN/g' $line1/Jre/lib/i386/xawt/libmawt.so
fi

rm -rf /tmp/EIOffice
}

doClean () {
if [ ! -f $INSTALL_INFO_FILE ];then
rm -rf $line3
rm -rf $line1/Jre
fi
}

PRG=$0

#
# resolve symlinks
#

while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
if expr "$link" : '^/' 2> /dev/null >/dev/null; then
PRG="$link"
else
PRG="`dirname $PRG`/$link"
fi
done

progdir=`dirname $PRG`
progname=`basename $0`


if [ ! -w /root ];then
echo "only root can do that!"
exit
fi

#if test -n "$(grep "Ubuntu" /proc/version)"; then
#export AWT_TOOLKIT=MToolkit
#else
#export AWT_TOOLKIT=XToolkit
#fi


#卸载模式
if test -f $INSTALL_INFO_FILE ; then
exec 4<&0 0<$INSTALL_INFO_FILE
read line1
read line2
read line3
exec 0<&4

if [ -f $line1/Jre/bin/java ] && [ -f $line3/dispose.jar ] && [ -f $line3/disposelog.xml ]; then
echo "start uninstallMode" >> $LOG_FILE
java_home=$line1/Jre
$java_home/bin/java -jar $progdir/dispose.jar 2>/dev/null
doClean
else
echo "uninstall file error,start newInstallMode" >> $LOG_FILE
rm -rf $line1
rm -rf $line3
rm -rf $INSTALL_INFO_FILE
newInstallMode
fi
#新安装模式
else
echo "start newInstallMode" >> $LOG_FILE
newInstallMode

fi

echo "exit" >> $LOG_FILE
exit

第二步,安装完成后修改“/usr/bin”目录的“eio”文件(同样注意红色部分)
命令:kdesudo kate /usr/bin/eio

修改后:
#!/bin/bash
#if test -n "$(grep "Ubuntu" /proc/version)"; then
#export AWT_TOOLKIT=MToolkit
#else
#export AWT_TOOLKIT=XToolkit
#fi

exec 4<&0 0</etc/Evermore/EIOffice/installinfo.cfg
read line1
exec 0<&4

$line1/EIOffice.bin ${@:+"$@"} 2>/dev/null

到此永中就能够用命令行输入“eio”启动和使用了,但是为了方便使用我们再修改一下永中的图标文件,让用中能够在“打开方式”中显示。
命令:kdesudo kate /usr/share/applications/eio.desktop

修改后(删除eio.desktop中最后一行:"Onlyshow=GNOME;",我为了好看呢顺便把里面的个人版字样删除了,以免启动图标名称太长):
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Exec=/usr/bin/eio
Terminal=false
Type=Application
Icon=/usr/share/eiofileicon/eio.png
Categories=GNOME;Application;Office;X-Red-Hat-Base;
MimeType=application/x-eio;application/msword;application/vnd.ms-excel;application/vnd.ms-powerpoint;application/eit;application/ees;application/eiw;application/uof;
Name=启动永中集成Office
Name[zh_CN]=启动永中集成Office

修改完成重启计算机,哈哈,我的永中终于恢复正常了。

这里再备份一个自己弄的卸载永中的脚本(使用方法,sudo ./uninstall.sh):
uninstall.sh.tar.gz
永中卸载脚本
(229 Bytes) 已下载 28 次
头像
jkll
帖子: 508
注册时间: 2008-06-11 11:23
来自: 金华
联系:

Re: Kubuntu 9.04升级后永中出错的解决办法

#2

帖子 jkll » 2009-07-11 18:04

强帖,谢谢分享!
回复