感谢IT之家网友 DotNet码农的投稿
对于很多开发人员来说,Linux可能是他们的主要工作环境,然而与其相矛盾的是,QQ又是他们的主要通讯工具。然而,类似于腾讯消极维护Win10UWP版本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%以上的正常工作的(甚至还能抢红包),而且是最新版本,在很长时间内都不用担心版本过低无法登录了。
想看到更多这类内容?去APP商店搜IT之家,天天都有小欢喜。