笔记本电脑维修查询_硅基智慧

Ubuntu上安装QQ2015

笔记本无法开机 Linux

Deb包下载地址:

http://www.longene.org/download/WineQQ7.8-20151109-Longene.deb

http://pan.baidu.com/s/1kTu9ZUZ

下载完成后双击会跳转到Ubuntu Software Center中安装,如果提示未经认证的deb包源请忽略继续安装;32位依赖库的问题请自行解决,可以百度或者谷歌关键字ubuntu 安装32 bit依赖库;

导语

本文的目的不在于安装一个qq到Ubuntu,而是在2年零几个月从2012版wineQQ到现在这个2015版的的使用心得以及一些思考,主要给有同样兴趣爱好的Ubuntu粉丝们提供一个参考。

为什么要在Ubuntu上安装QQ?

很多人第一时间会说我离开windows会无法正常工作,我离开QQ无法找到其他IM工具,嗯哼 这算是个灰常实际的说辞或者借口,其实5年前我一开始接触Ubuntu10.04的时候也是这么想的,但是5年后的我,即便是使用Ubuntu 2年后的我却已经不会这么想了?为什么?因为工作上学习上平时在windows上能够用到的一切我都在Ubuntu上找到对应的替代产品了,所有,一切...

那为什么还要反过头来写这篇文章?嗯...闲的...好吧 其实这次的理由是我现在所在的公司都是统一使用QQ做工作用IM,说正经的,有些人高高在上当领导做事全是拍屁股决定,从最初QQ切到Skype再到QQ来回折腾3次,所有人都得跟着他走容不得任何异议,这样的领导可想而知整个公司是怎么的一个日常运行? 不用我说都能想象,好在属于异地开发,眼不见心不烦我不用那么烦心,作为一个专心搞技术的程序员,我还是要不断的学习才对!

于是,我自己买了intel nuc i5 6代的小盒子,丢掉了公司配备的i5 4代标配笔记本电脑,自己买了显示器、机械键盘等等一切,这一些才是继续学下去的保障。

好吧,周围人都是qq来qq去的,每天语音过来语音过去手机根本扛不住,只能在16G内存、固态硬盘的小盒子上装QQ了,现在说说使用体验...

Wine版QQ2015使用体验

这个2015版QQ使用起来大概吃掉我2g多接近3g的内存,不过对于16g的总容量来说小菜一叠,已经使用2、3个月了,语音、视频、远程协助、群组、讨论组、表情什么的只要你能想的到的都支持,总而言之够用了。除了就是随着时间的推移这个QQ的功能可能会落后最新的QQ很多而导致不兼容的情况,这个是个问题,但目前来看至少2年内不会有太大问题。

Wine版QQ2015使用中的坑

如右边图片,第一次安装完毕点击这个QQ启动程序是可以正常弹出登陆界面进行登陆的,但是关了机再运行就出问题了:

Application tried to create a window, but no driver could be loaded.

The explorer process failed to start.

你仔细看下/usr/share/applications/QQ启动程序脚本里面怎么写得会发现,点击之后应用启动的最终脚本是这个/opt/longene/qq/qq.sh

这个shell脚本告诉我们qq的启动是用一个自己打包带走的wine 1.7版本最终运行的,期初我遇到这个问题并看到下面第一个脚本我就打算自己装一个最新的wine来启动,但是不幸的是登陆框昙花一现后就say good bye了,oh no ,尝试了一个下午还是失败,不用怀疑肯定是longene团队对这个打包带走的wine 1.7做了调整以适应这个QQ2015

ok,不过细心一点我发现longene团队的这个qq会在home目录下产生一些缓存文件,于是请看下面第2个脚本中红颜色的那行,删掉这些后longene的QQ2015成功复活,O(∩_∩)O哈哈哈~

这就完了?

oh no, 还没完,电脑重启后回来即便删掉这些缓冲文件还是会报上面的错误,oh my god,终于反复的观察Terminal中的输出,发现一个特点就是要保证longene Wine QQ2015正常并且反复的可以运行,必须保证wine server的正常运行,举个例子吧:就是java程序员要能够跑起来,那必须保证jre是活着的,就这么一个道理。

于是,每次关机再开机后wine server必然是被由于上次的环境配置问题导致无法正常启动,那上面使用过最新的wine试图启动longene的QQ2015失败后再回头来用longene打包的wine1.7就可以跑了呢?道理很简单,当我试图用最新的wine跑longene的QQ2015的时候成功的清洗掉了导致wine1.7的wine server无法正常再次启动的环境配置,于是呢我专门写了下面第2个脚本:

运行第二个脚本并带上-c参数在每次开机或者环境故障的时候 当每次关掉qq又想释放掉wine占去的那么多内存那就带上-k来杀掉wine 1.7的 wine server 如果关掉qq在没有关机重启的情况下想再次启动那就不必带上任何参数

欧克,虽然简单粗暴好不讲道理,但是基于没有更多的时间去处理更具体的原因造成这种情况,但是目前来看问题已经解决,而且自己安装一个最新的wine跟longene QQ2015打包带走的wine1.7并无冲突,而且自己可以使用最新的wine来把玩其他别的windows程序,也是无伤大雅、其乐无穷啊 O(∩_∩)O哈哈哈~

view sourceprint?001.#!/bin/bash

002.

003.set -e

004.export LANG=zh_CN.utf8

005.

006.#Longene Dir

007.LONGENE_DIR=/opt/longene

008.#Wine Program Main Dir

009.WINE_DIR=$LONGENE_DIR/qq/wine-lib

010.#WINPREFIX Dir

011.WINEPREFIX_DIR=$HOME/.longene/qq

012.#Wine APP Dir

013.WINEAPP_DIR=$LONGENE_DIR/qq

014.#Current App Dir

015.QQ_DIR=$LONGENE_DIR/qq

016.

017.#Current User

018.#RUNUSER='`basename $HOME `'

019.RUNUSER=`whoami`

020.PACKAGE_NAME=wine-qq7.8-longeneteam

021.TAR_NAME=qq7.8.tar.bz2

022.WINELIB_TAR=wine-lib.tar.bz2

023.

024.#QQ_USER_DIR='$WINEPREFIX_DIR/drive_c/Program Files/Tencent/QQ'

025.

026.function runhelp

027.{

028.echo '************************************************************************'

029.echo '* Wine-QQ2013-By Longene Team -- build 20131120'

030.echo '* Contact Us By http://www.longene.org'

031.echo '* '

032.echo '* Commands:'

033.echo '* -u/--uninstall Uninstall Wine-QQ2013 if you don't like'

034.echo '* -d/--debug Open debug channel. Log file is in your home directory'

035.echo '* -h/--help The fucking help information as now you are reading'

036.echo '* -k/--kill execute wineserver -k to kill all wine programs'

037.echo '* -reg/--regedit start regedit editor'

038.echo '* -cfg/--winecfg start winecfg'

039.echo '************************************************************************'

040.}

041.

042.function uninstallpackage

043.{

044.echo '* Remove wine-qq7.8-longene...'

045.read -p '* Are you sure? (Y/N)' ANSW

046.if [ '$ANSW' = 'Y' -o '$ANSW' = 'y' -o -z $ANSW ];then

047.sudo dpkg -P $PACKAGE_NAME

048.echo 'Removing.....'

049.

050.else

051.exit 0

052.fi

053.}

054.

055.function check_owner

056.{

057.WINEPREFIX_DIR_USER=`stat -c %U $WINEPREFIX_DIR`

058.if [ '$RUNUSER' != '$WINEPREFIX_DIR_USER' ];then

059.sudo chown $RUNUSER $WINEPREFIX_DIR

060.echo '* Modifying the owner of $WINEPREFIX_DIR'

061.fi

062.}

063.

064.

065.function check_firstrun

066.{

067.# echo 'Check firstrun....'

068.if [ ! -e $WINEPREFIX_DIR/firstrun ];then

069.echo '* Seems the first time to run. Here we go!'

070.# $QQ_DIR/longene_gtk

071.$QQ_DIR/firstrun $WINEPREFIX_DIR/firstrun &

072.# echo 'Bingoo' >$WINEPREFIX_DIR/firstrun

073.fi

074.}

075.

076.function runapp

077.{

078.check_firstrun

079.if [ ! -e '$WINE_DIR/bin/wine' ]; then

080.tar -jxf $QQ_DIR/$WINELIB_TAR -C $QQ_DIR

081.rm -f $QQ_DIR/$WINELIB_TAR

082.if [ ! -e '$WINEPREFIX_DIR/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe' ]; then

083.mkdir -p $HOME/.longene

084.tar -jxf $QQ_DIR/$TAR_NAME -C $HOME/.longene

085.rm -f $QQ_DIR/$TAR_NAME

086.fi

087.touch $WINEPREFIX_DIR/firstrun

088.fi

089.WINEDEBUG=-all env WINEPREFIX=$WINEPREFIX_DIR $WINE_DIR/bin/wine $WINEPREFIX_DIR/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe

090.}

091.

092.function debugapp

093.{

094.echo '* Starting debug channel.......'

095.echo '* Log file will be created in your Home:/Longene_qq2012.log'

096.echo '* You can upload the log on our site for help: http://www.longene.org'

097.

098.#find $LONGENE_DIR -type f -exec $QQ_DIR/md5sum {} + >$HOME/Longene_qq.log

099.#echo '*********************************************' >>$HOME/Longene_qq.log

100.env WINEPREFIX=$WINEPREFIX_DIR $WINE_DIR/bin/wine $WINEPREFIX_DIR/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe >$HOME/Longene_qq.log 2>&1

101.}

102.

103.case $1 in

104.'--uninstall'| '-u')

105.uninstallpackage

106.;;

107.'--debug'| '-d')

108.debugapp

109.;;

110.'--kill'| '-k')

111.env WINEPREFIX=$WINEPREFIX_DIR $WINE_DIR/bin/wineserver -k

112.;;

113.'--regedit'| '-reg')

114.env WINEPREFIX=$WINEPREFIX_DIR $WINE_DIR/bin/regedit

115.;;

116.'--winecfg'| '-cfg')

117.env WINEPREFIX=$WINEPREFIX_DIR $WINE_DIR/bin/winecfg

118.;;

119.'--help'| '-h')

120.runhelp

121.;;

122.*)

123.if [ -z $1 ];then

124.runapp

125.else

126.echo 'Invalid option:$1'

127.runhelp

128.fi

129.;;

130.esac

这个是我自己另外写的一个辅助性shell脚本:

view sourceprint?01.#!/bin/bash

02.WINEPREFIX_DIR=$HOME/.longene/qq/

03.

04.function runhelp

05.{

06.echo '************************************************************************'

07.echo '* Help'

08.echo '* Commands:'

09.echo '* -c/--clean 清理数据'

10.echo '************************************************************************'

11.}

12.

13.

14.function runclean

15.{

16.env WINEDLLPATH=/opt/longene/qq/wine-lib/lib/wine WINESERVER=/opt/longene/qq/wine-lib/bin/wineserver WINEPREFIX=$WINEPREFIX_DIR wine $WINEPREFIX_DIR/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe >$HOME/Longene_qq.log 2>&1

17.sleep 5

18.bash /opt/longene/qq/qq.sh&

19.sleep 5

20.rm $WINEPREFIX_DIR/DOSdevices/*::

21.}

22.

23.function runapp

24.{

25.bash /opt/longene/qq/qq.sh&

26.}

27.

28.

29.case $1 in

30.'--clean'| '-c')

31.runclean

32.;;

33.'--kill'| '-k')

34.bash /opt/longene/qq/qq.sh -k

35.;;

36.'--help'| '-h')

37.runhelp

38.;;

39.*)

40.if [ -z $1 ];then

41.runapp

42.else

43.echo 'Invalid option:$1'

44.runhelp

45.fi

46.;;

47.esac

标签:Ubuntu