如何优雅地在Linux上运行QQ微信?

20191212151602
11月8号的时候,腾讯禁止了旧版的QQ客户端再登录,导致Linux下Wine版的QQ也受到牵连无法再使用。庆幸的是8号当天,深度就在各个源发布了全新版本给凤毛麟角的Linux用户续命。
因为我平时工作环境是Linux,所以使用QQ是个刚需,终于在折腾了好几天之后解决了所有问题,在Ubuntu下用上了功能堪比Windows原版的QQ。因而写下这篇文章记录一下踩坑的过程,帮助其他奋战在Linux端的小伙伴避免折腾。
这次安装软件的并非官方的版本,而是在x86 Ubuntu上基于wine安装的QQ和微信
2008年出现了一种名为wine的技术,这种技术在Linux平台实现了部分Windows的系统API和库,让用户可以在Linux端无缝使用Windows端的应用程序。
后来国内深度社区将wine做了很好的封装并且在wine上移植了诸多windows端的软件。包括QQ、微信等等,而且在功能上几乎都可以和windows原版分庭抗礼,给广大Linux桌面版用户提供了极大地便利。
2019年11月8日旧版的QQ被停止使用,也是同一天,深度就发布了新的Wine版QQ提供支持。在国内的阿里源、清华源等镜像源中也可以下载到最新版本。
不过因为旧版的无法使用,新版本的安装使用出现各种问题,业内社区一时哀声载道。
因此本文将刚刚安装的Linux版QQ、微信以及踩坑过程记录下来。希望其他玩Linux小伙伴们看到后避免踩坑!
不过在Wine下腾讯旧版的微信、QQTim版和轻聊版仍然能正常使用,懒得折腾的同学可以继续使用Tim版或轻聊版,如旧版停止服务可按照此教程安装新版软件使用。

安装过程

注意:如果过程中出现软件包依赖问题时请谨慎操作,除非非常确定,否则不要使用sudo apt-get install -fysudo apt autoremove -y,-y参数不经过问询很可能被卸载桌面

一、下载安装最新的deepin-wine环境库

mkdir -p ~/temp && cd ~/temp
# 下载环境库的包
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine_2.18-20_all.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine32_2.18-20_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine32-preloader_2.18-20_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-helper/deepin-wine-helper_1.2deepin8_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin/deepin-wine-plugin_1.0deepin2_amd64.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin/deepin-wine-plugin_1.0deepin2_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin-virtual/deepin-wine-plugin-virtual_1.0deepin3_all.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-uninstaller/deepin-wine-uninstaller_0.1deepin2_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/u/udis86/udis86_1.72-2_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-fonts-wine_2.18-20_all.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine_2.18-20_i386.deb
wget https://mirrors.aliyun.com/deepin/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.1-2_amd64.deb
wget https://mirrors.aliyun.com/deepin/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.1-2_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine-dbg_2.18-20_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine-dev_2.18-20_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine-binfmt_2.18-20_all.deb
# ‘添加32位支持’
sudo dpkg –add-architecture i386
# ‘刷新apt缓存信息…’
sudo apt update
# ‘开始安装…’
sudo dpkg -i *.deb
# 出现依赖报错执行:sudo apt-get install -f 参加下文中的踩坑部分

二、下载安装最新版Wine QQ 微信

其他什么QQ浏览器迅雷等windows端软件都有,可以在http://mirrors.aliyun.com/deepin/pool/non-free/d/找自己需要的。
 

wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.qq.im/deepin.com.qq.im_9.1.8deepin0_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.wechat/deepin.com.wechat_2.6.8.65deepin0_i386.deb
sudo dpkg -i deepin.com.qq.im_9.1.8deepin0_i386.deb
sudo dpkg -i deepin.com.wechat_2.6.8.65deepin0_i386.deb
# 安装完成后在Applications中找到对应图标即可运行。

踩坑

顺利的话,只需要上面很简单的两步,就可以完成。然而现实并不总是这么顺利。

1、安装deepin-wine包依赖问题(上文步骤一)

之前装过wine的小伙伴,此次升级安装基本不会有什么坑。然而对于首次安装的小伙伴,安装这些包会缺很多系统依赖。
如果报错依赖缺失,解决方案是:执行sudo apt-get install -f进行修复,千万不要加-y参数。

  • 修复前它会询问,安装n个包,卸载n个包,更新n个包,是否执行?如果有卸载包,千万不要着急输入Y就往下走(卸载的包里很可能有ubuntu-desktop,如果无脑下一步就瞎了)如何优雅地在Linux上运行QQ微信?
  • 出现询问是否安装时,把即将安装的包复制,然后输入n不进行自动安装操作。
  • 下一步手动sudo apt-get install [Ctrl+shift+v] 粘贴刚才复制下来的所有包手动安装
  • 如果这些包安装过程中仍然有依赖问题可以使用sudo apt-get install -f进行修复,如果明确显示卸载0个包再输入y往下进行,否则建议仍然手动安装对应的依赖。

2、安装QQ包依赖问题(上文步骤二)

dpkg: 依赖关系问题使得 deepin.com.qq.im:i386 的配置工作不能继续:
deepin.com.qq.im:i386 依赖于 deepin-wine-helper (>= 1.2deepin2);然而:
系统中 deepin-wine-helper:i386 的版本为 1.2deepin0。
dpkg: 处理软件包 deepin.com.qq.im:i386 (–install)时出错:
依赖关系问题 – 仍未被配置论坛上提的最多的就是这个问题,安装新版QQ或微信时报这个错误。解决方案其实很简单:执行上文的步骤一就可以。
新版的QQ依赖的是新版的deepin-wine库,只要把步骤一安装完更新到最新就可以。

3、安装完成后点击图标无法启动

这个问题,让我前前后后放弃了好几次。
在我执行完步骤一、二没有任何报错以后,在Applications中找到对应图标点击,然而软件闪烁一会儿后退出,无法打开程序。
先说解决方案:

  • Deepin.tar.gz拷贝到~/deepinwine/路径下并解压(该路径会在你第一次执行QQ或微信时创建)
  • 解压后再次运行程序,问题解决。

这个问题的排查过程十分糟心,我新建了一个ubuntu16.04的虚拟机,执行完这套操作软件完全正常运行,然而我本地机器死活不可以。始终找不到问题出在哪儿。
后来没办法找到了图标的文件:/usr/share/applications/deepin.com.qq.im.desktop
手动执行文件里的Exec的命令:/opt/deepinwine/apps/Deepin-QQ/run.sh -u %u
结果得到了报错:
wine: cannot find “C:\\Program Files\Tencent\QQ\Bin\QQ.exe”然而在我的虚拟机的ubuntu下并没有这个错误。
问题定位到这儿一筹莫展,始终不明白我的电脑里为什么不存在这个文件,也不知道该怎么修复。
我得想办法知道这个Windows的虚拟路径存在Linux系统中的什么位置。然而一直都没有找到。
直到后来功夫不负有心人,偶然的机会在deepin官网的论坛中看到:
如何优雅地在Linux上运行QQ微信?这一下子让我看到了希望,我进入到系统里~/.deepinwine/Deepin-QQ/driver_c/路径下,看到了Program FilesWindows目录。我就知道来对地方了!
果然,这两个目录下只有一些空文件夹。显然这里的文件应该在第一次启动QQ的时候就释放到这里来,不知什么原因它没有成功。
不过分析到这里原因已经不重要了,既然我虚拟机下有一个可用的,直接照搬复制过来就OK。
于是我把虚拟机里~/.deepinwine/Deepin-QQ/driver_c/Deepin-QQ~/.deepinwine/Deepin-QQ/driver_c/Deepin-WeChat两个文件夹原封不动的搬到了我的系统下!
运行程序:
如何优雅地在Linux上运行QQ微信?
看到界面的那一刻,真想哇的一声哭出来。自从8号早上QQ不能用后,这个问题困扰的我连觉都睡不好,倒不是说非得用QQ不可,而是遇到一个技术坑踩不过去贼烦心!
上面提到的那个压缩包,其实就是我的虚拟机下的这两个目录。
不出意外的话,安装新包过程无论失败与否,你把这个包解压到本地都能运行个八九不离十。
当然,如果你本地遇到这个问题,也可以自己搞个虚拟机鼓捣出一版可用的,然后把文件拿出来放到本地就行!

后记

以上就是整个QQ微信在Linux上安装的全部踩坑过程。最大的坑有三个:

  1. 安装依赖问题,这个环境运行依赖的是i386的环境,大多64位系统中没有,安装过程中反复失败重来过程很繁琐。
  2. 卸载桌面!这是个巨坑,我一下午虚拟机被卸载了三次桌面,每次卸载完都重装重来。最后才得出上文踩坑2的办法。如果各位小伙伴在自己的电脑上安装,一定要小心不要一路无脑下一步,否则被卸载了桌面没点能耐很难妙手回春。
  3. 安装完成后无法运行,就是上面说的最后一点,这里就不赘述了。

软件运行后还有很多BUG,不过基本都是深度和Wine还有QQ的事情了,我们用户可操作掌控的空间很小。
以上操作可以写一个脚本一键搞定,但是没什么技术含量我懒得搞了,另外写脚本里如果出现-f -y这种强制不可控参数,一不小心卸载了桌面,反而会给大家造成更大的麻烦。

发表评论