[摘要]地址:blog.sina.com.cn/fbi2006 上次说到本F搞定了linux下的QQ,其实在linux下使用QQ至少有五种方法(茴香豆的五种写法?)。那只是其中一种,今天就总结一下这段时...
地址:blog.sina.com.cn/fbi2006
上次说到本F搞定了linux下的QQ,其实在linux下使用QQ至少有五种方法(茴香豆的五种写法?)。那只是其中一种,今天就总结一下这段时间本F关于linux下使用QQ的心得。
大概02年左右,当时本F玩redhat时就用过Gaim+libqq插件的形式来登录QQ。一个小小的工具可以在一个软件界面上同时登录多种即时通讯工具,比如ICQ/MSN/QQ等等.感觉还是不错的。那时候QQ貌似还没什么群的概念,自定义表情好像也没什么印象----可能也还没有吧(不记得了,呵呵)。所以当时能登录QQ服务器进行聊天也就达到了其应有的效果。
在这次玩ubuntu的过程中,虽然本F对QQ这个软件本身很是不屑----管理混乱、烦人的无所不在的广告、打压珊蝴虫事件、最恶心的是前年无缘无故收回了我一个用了好多年的7位靓号----但它毕竟是中国市场占有率最高的IM工具,很多朋友都是只能用QQ联系,没办法只好再想办法搞定它,金刚的滋味不好受啊。
对于解决QQ联系的方案选择上,本F是走了一点弯路的,当然也获得了一些经验。
想要登录QQ,有两个大方向可以走:
第一类是使用linux下的软件来直接登录QQ服务器。
这类软件有lumaqq、eva、pidgin、Gaim等等,这些软件都属于第三方工具,属于自己分析QQ的协议来仿造QQ客户端实现QQ的部分功能。这类工具的优点是短小精悍,多为多功能登录工具,不但可以登录 QQ,还可以登录MSN、ICQ等其他在线聊天服务器。缺点是毕竟不是原厂出品的客户端,对QQ这种非公开的协议分析不可能完全精确,很多功能无法完美实现,而且QQ经常在升级的时候更改一些协议细节,分析这些细节的变更又需要一定的时间,使得linux下的客户端软件常常有滞后性(经常TMD不能登录)。
下面这张是本F用pidgin登录的QQ的截图:
[attach]8225[/attach]
可以看到,这类工具可以实现登录QQ、和Q友文字交流、发部分表情以及一定的群聊功能。(pidgin还可以实现文件传输功能。)但是远程协助、视频聊天等高级功能就爱莫能助了,其实我这个QQ不止加入了一个群,但是这里只显示一个名称为 NULL 的群,明显对群功能的支持还差强人意。
第二类是直接使用腾讯自己的客户端登录QQ服务器。
由于腾讯至今没有发布For Linux的QQ客户端,所以我们只有虚拟出win环境来运行腾讯的QQ客户端。
这里又有了两种选择:
1、使用wine模拟win32 API环境来运行QQ
Wine运行在Linux的X上,它提供了Windows API函数接口,它是一个Windows兼容层,这个层提供了一个从 Windows源与UNIX的开发工具包(Winelib)的接口,另外它还有程序加载器的功能,其允许不用任何修改Windows 3.1/95/NT的二进制文件,简单的说,wine是一个Linux下Windows应用程序模拟器。其模拟出一个C盘,里面有windows文件夹、Program Files文件夹等。windows下的程序就运行在这样一个模拟的windows环境下。
本F上次文中提到的“QQ完美运行”就是基于wine的解决方案。它的优点显而易见,由于是运行腾讯原厂客户端,通讯协议上不会有任何问题。所以,无论是界面还是功能,都和在windows下没有两样。更加令人兴奋的时,在这种解决方案下,由于QQ仅仅是运行在wine之上,实际上其窗口还是被linux X所控制。所以每个QQ窗口都可以拥有所有linux下设置的眩目特效。想要抓图show给朋友的linuxer有福了!
[attach]8226[/attach]
眩目的窗口特效!
然而,wine解决方案也不是十全十美的,抛开安装设置的繁琐步骤不说。由于wine本身还不是完美的。所以在这些天的使用中,我发现QQ运行并不是非常稳定。进程崩溃时有发生。这种“兼容性故障”,到底归咎于QQ还是wine或是linux本身,目前倒是无法考证。值得一提的是,在这种运行方式下,各种QQ外挂都将失效。
2、使用虚拟机运行QQ
这种解决方案也是本F目前使用的,至于用vmware还是virtualbox倒并不是很重要了(本F是两个都装了,最后选择了VB,我喜欢它的无缝模式,虽然我平时只是最大化VB窗口来使用,但是无缝模式用来show还是很cool的,虽然wmware也有类似的功能,但VB的小巧和速度都使我倾心),对于今天的主题----登录QQ来说,它们都是一样的,虚拟出一台电脑的硬件设备,装上操作系统(win2k or winxp。)配置成NAT上网方式,想运行什么就运行什么。
在这样的环境下,没什么好说的,什么都和windows下一样----根本完全就是在windows中嘛!什么QQ外挂补丁,本来能用的现在就肯定一样有效。要说有什么缺点的话,好吧。由于QQ现在运行在一个windows容器中,linux X 对其没有直接控制权,各种眩目的特效不能生效于QQ窗口了。另外,正因为QQ是运行在windows容器中,它的截图功能只能截取虚拟机中的屏幕(超郁闷!)它是无法直接去linux区域抓图的!当然,如果VB中的windows崩溃了,或者VBirtualBox自身进程挂起了,QQ也就和它们一起同归于尽啦。
虚拟机中的QQ----和你用的有什么区别?
[attach]8227[/attach]
总结:
鉴于QQ是一个使用封闭协议的即时通讯软件,又没有官方的linux版。
所以不推荐使用那些linux下的第三方软件来登录QQ,毕竟他们的所实现的功能实在不敢恭维,而且又随时有登录不上的风险(腾讯一个版本升级,通讯协议一改就有此可能)!
至于wine方案和虚拟机方案之间的选择,建议linux新手直接使用虚拟机。wine配置繁琐,且并不稳定。当然,像我一样两者都用也是一个选择。总之,虚拟机方式运行QQ是最实用的。(我真的喜欢wine下QQ所继承的linux X特效)
最后说一下,我在VirtualBox的windows里装了uucall(MD用wine都搞不定的东西,本F还充了几百大洋呢,不能不用啊)、飞信(这玩意在linux下用pidgin也能登录,当然需要下载插件并配置,但我既然都装了虚拟机,为什么不直接用它呢)、pcanywhere(没找到合适的linux替代品)。
Linux是一套免费使用和自由传播的类Unix操作系统
……