IT之家学院:在Linux下完美运行Windows PC版QQ/TIM教程

来源:IT之家作者:DotNet码农

感谢IT之家网友 DotNet码农 的投稿

对于很多开发人员来说,Linux可能是他们的主要工作环境,然而与其相矛盾的是,QQ又是他们的主要通讯工具。然而,类似于腾讯消极维护Win10 UWP版本QQ的原因,Linux版本的QQ早在2008年就夭折在了beta版本。于是,互联网上出现了若干种在Linux上运行QQ的方案:使用网页QQ、使用Crossover、使用Longene-QQ、使用pidgin-QQ、安装Windows虚拟机并安装QQ、使用Wine容器运行QQ。然而网页QQ功能有限,Crossover价格昂贵且效果不甚理想,Longene-QQ停留在了QQ7版本,pidgin-QQ已经无法正常登录,虚拟机过分庞大,而Wine-QQ则容易产生兼容性问题。这令Linux用户相当头疼。

本教程旨在调教Wine,规避QQ8.9运行于Wine环境时产生的大部分兼容性问题,并在Linux环境下得到一个接近完美运行的QQ。本教程编写于ArchLinux+Gnome3.22.2(物理机)。

1、安装Wine

Wine是Wine Is Not an Emulator的递归缩写,它是为了在Linux上运行Win32应用程序而设计的一类API转接容器。因为Wine并没有运行一个Windows核心,只是通过将Windows的API解释为Linux的API来运行Win32应用程序,故效率相当理想,但无法正确兼容所有的Win32应用(事实上是如果你不调教一下,它几乎无法正常兼容任何Win32应用)。使用你的发行版提供的工具来安装Wine,对于我来说,则是:

sudo pacman -S wine

等待安装完成,输入指令:

wine --version

如果能够正确输出Wine的版本,则你的Wine就安装完成了。

2、安装QQ调教Wine

下载所需要的文件:文件地址(指向我的OneDrive,请放心访问),你会得到一个zip文件。解压那个文件,你会得到四个目录:

依次使用Wine Windows Program Loader打开win2ksp4、msls31、vcrun6目录里的exe程序,注意第一次打开exe程序的时候Wine会自动配置一个位于~/.wine下的默认容器。如果不需要进行特殊的工作,那么我们就使用这个默认容器吧。

到PC版本的QQ主页,下载最新的QQ安装程序(或TIM),用Windows Program Loader打开这个后缀为exe的安装程序,去掉创建桌面快捷方式,去掉开机自启,去掉快捷启动栏快捷方式,安装到默认路径,并完成安装过程。在最后一个页面不要启动QQ,而是关掉安装程序。在Linux终端内输入winecfg,打开Wine设置界面。在"函数库"选项卡下,将设置修改为下图所示:

其中:停用ntoskrnl.exe是为了解决无法正常启动QQ的问题,使用原装的riched20是为了规避无法输入用户名的Bug,停用txplatform.exe是为了避免QQ无法完整退出而滞留整个Wine容器的问题。

3、安装字体

向Wine内安装字体并不复杂,过程类似Windows。将包内含的文泉驿字体拷贝到Wine容器相应的目录下(目录结构和Windows一致),并向Wine容器的注册表内添加相应条目。记得采用

wine regedit

指令来运行Wine容器的注册表编辑器。

4、运行并测试QQ

完成上述步骤后,你的QQ应该位于~/.wine/drive_c/Program Files (x86)/Tencent/QQ/Bin目录下。导航到这个目录下,并使用指令:

wine QQ.exe来尝试启动QQ。测试用户名输入框能否正常输入用户名,不要勾选"记住密码"和"自动登录",它们可能带来问题,输入密码并测试能否正常登录。如果一切正常,你的QQ就安装完成了。

5、创建启动器入口

按照我的习惯,我会把常用的软件放在Gnome启动器上。在你的家目录下创建.startqq.sh文件(以小数点开头,这样它通常会被隐藏起来),并编辑其内容如下:

其中thomas是我的用户名,你们应该换成你们自己的。用

chmod +x .startqq.sh

指令给它加上可执行权限,然后在/.local/share/applications/下创建一个qq.desktop文件,并将其内容修改如下:

同样:thomas是我的用户名,你们应该换成你们自己的。Icon所指向的地址是一个QQ的Logo,可以自己画一个或者找一个。按下Alt+F2,输入r并回车,Gnome环境会自动重启,进入启动器,可以看到我们的QQ已经被加进去了:

单击这个QQ的图标,如果能正确启动,并能正常登录的话,你的QQ启动器就已经完成了:

6、已知Bug

这样调教过的Wine运行的QQ依然存在Bug,但是无伤大雅而且不影响正常使用。

  • 不能保存密码,不能自动登录;
  • 偶尔会刷新不同步,但只要把鼠标移动至相关元素上就能强制刷新它们;
  • 过分大的图(一般是接近、等于或超过桌面分辨率的图)没有办法调出"查看大图"窗口;
  • "查看大图"窗口可能无法正常渲染整张图片,但是只要手动缩放一下就能解决;
  • 无法直接从"发送图片"按钮选择本地图片发送,但是可以从剪贴板粘贴或者从收藏里直接发送表情包;
  • (仅发生过一次)连续快速地在主窗口上下滚动鼠标滚轮导致程序崩溃。

总之,这样Linux安装的QQ是可以完成95%以上的正常工作的(甚至还能抢红包),而且是最新版本,在很长时间内都不用担心版本过低无法登录了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据