stubma 发表于 2004-7-13 00:36:13

LumaQQ安装包更新

安装包更新,主要是修改了一下启动脚本,安装更加简单之,主要修正
1) 在readlink之后使用了file命令,以免readlink命令失败
2) 是否设置JAVA_HOME成为可选项,只要jre装在/usr, /opt或者$HOME之下,脚本即可搜索到JRE
3) 添加了很多注释,方便你想修改脚本时理解脚本代码
4) 安装包同步更新到Patch 3 2004-07-12

Patch 3顺带更新:
2004-07-12 支持2003和2004两套头像,可以在系统参数中设置使用哪套

下面是新脚本,对于不想重新下载安装包的朋友,拷贝粘贴之(或者通过http://lumaqq.linuxsir.org/download/lumaqq下载新脚本)

#!/bin/bash

# 判断执行文件的类型,如果是一个符号链接,得到这个链接的目的路径,在以前的版本中,这个任务是用
# readlink -f 命令完成的。这种作法稍微有些问题,比如你的系统里面可能没有readlink命令,或者低版本的
# readlink还不支持-f参数,所以在这里先采用readlink,如果readlink失败,则再用file命令和一个
# 模式匹配来得到目的路径。目前我不确定是否每个平台上的file命令都是返回symbolic link to 这种字符串,
# 如果不是,把symbolic link to 替换成你的file命令返回的那样
PREFIX=
if [ -L "$0" ]; then
        PREFIX=`readlink -f $0`
        if [ $? -eq 0 ]; then
                PREFIX=`dirname $PREFIX`               
        else
              PREFIX=`file $0`
              PREFIX=${PREFIX##*symbolic link to }
              PREFIX=`dirname $PREFIX`
        fi
else
      PREFIX=`dirname $0`
fi

# 在这里我判断得到的路径是否是绝对路径,如果不是绝对
# 路径,我要再做一些处理得到绝对路径
case $PREFIX in
      /*)
      ;;
      *)
      cd $PREFIX
      PREFIX=`pwd`
      ;;
esac

# 这里检查你的用户目录下是否有.lumaqq目录,如果没有,
# 会自动建立一个,用户的所有QQ相关信息将保存在这个
# 目录下,所以在多用户的机器上,你应该把这个目录设置
# 成唯你可读
if [ ! -e $HOME/.lumaqq ]; then
      mkdir $HOME/.lumaqq
fi

# 这里对LumaQQ的一些目录和文件做一些链接,这个地方使用
# 了-f参数,所以即使你挪动了LumaQQ的目录到另外一次地方
# 下次运行也不会受影响
cd $HOME/.lumaqq
ln -sf $PREFIX/log4j.properties $HOME/.lumaqq/log4j.properties
ln -sf $PREFIX/xml
ln -sf $PREFIX/sound
ln -sf $PREFIX/QQWry.dat $HOME/.lumaqq/QQWry.dat

# 这里我设置Java到类路径,LumaQQ安装目录下面的lib目录
# 包含了所有需要用到的jar文件,这些都必须加到类路径中
cp=
for i in $PREFIX/lib/*.jar; do
      cp=$i:$cp
done

# 这里是开始运行了,为了用户的方便,这里尝试3种情况,首先检查用户安装的是不是带JRE版本的,如果是
# 则使用自带的JRE。如果失败,检查JAVA_HOME是否设置了,如果设置了,使用JAVA_HOME,如果仍然失败,
# 则在/usr下面找寻一个可用的JRE。如果/usr下面没有,则再在/opt下面找寻JRE,如果/opt下面也没有,
# 则在用户主目录下找寻JRE,如果还找不到,那就是真的失败了
if [ -e $PREFIX/java ]; then
        $PREFIX/java/bin/java -Djava.library.path=$PREFIX/swt -classpath $cp edu.tsinghua.lumaqq.LumaQQ "$HOME/.lumaqq" &
elif [ ! -z $JAVA_HOME ]; then
        $JAVA_HOME/bin/java -Djava.library.path=$PREFIX/swt -classpath $cp edu.tsinghua.lumaqq.LumaQQ "$HOME/.lumaqq" &
else
        found=0
        for i in `find /usr -name "java" | grep bin`; do
                if [ -x "$i" ]; then
                        $i -Djava.library.path=$PREFIX/swt -classpath $cp edu.tsinghua.lumaqq.LumaQQ "$HOME/.lumaqq" &
                        found=1
                        break
                fi
        done
       
        if [ $found -eq 0 ]; then
                for i in `find /opt -name "java" | grep bin`; do
                        if [ -x "$i" ]; then
                                $i -Djava.library.path=$PREFIX/swt -classpath $cp edu.tsinghua.lumaqq.LumaQQ "$HOME/.lumaqq" &
                                found=1
                                break
                        fi               
                done
        fi

        if [ $found -eq 0 ]; then
                for i in `find $HOME -name "java" | grep bin`; do
                        if [ -x "$i" ]; then
                                $i -Djava.library.path=$PREFIX/swt -classpath $cp edu.tsinghua.lumaqq.LumaQQ "$HOME/.lumaqq" &
                                break
                        fi
                done
        fi
fi
页: [1]
查看完整版本: LumaQQ安装包更新