查看原文
其他

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

程序人生 2019-12-26

以下文章来源于帝都高级待业专家 ,作者三丨级丨狗

作者 | 三级狗

本文经授权转载自帝都高级待业专家(ID:ThreeDog521)

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 -fy和sudo 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,如果无脑下一步就瞎了)

  • 出现询问是否安装时,把即将安装的包复制,然后输入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中找到对应图标点击,然而软件闪烁一会儿后退出,无法打开程序。

先说解决方案:

  • 下载这个压缩包:https://download.csdn.net/download/Three_dog/11970984

  • 将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官网的论坛中看到:

这一下子让我看到了希望,我进入到系统里~/.deepinwine/Deepin-QQ/driver_c/路径下,看到了Program Files和Windows目录。我就知道来对地方了!

果然,这两个目录下只有一些空文件夹。显然这里的文件应该在第一次启动QQ的时候就释放到这里来,不知什么原因它没有成功。

不过分析到这里原因已经不重要了,既然我虚拟机下有一个可用的,直接照搬复制过来就OK。

于是我把虚拟机里~/.deepinwine/Deepin-QQ/driver_c/Deepin-QQ和~/.deepinwine/Deepin-QQ/driver_c/Deepin-WeChat两个文件夹原封不动的搬到了我的系统下!

运行程序:

看到界面的那一刻,真想哇的一声哭出来。自从8号早上QQ不能用后,这个问题困扰的我连觉都睡不好,倒不是说非得用QQ不可,而是遇到一个技术坑踩不过去贼烦心!

上面提到的那个压缩包,其实就是我的虚拟机下的这两个目录。不出意外的话,安装新包过程无论失败与否,你把这个包解压到本地都能运行个八九不离十。

原谅我不要脸的扔在CSDN上蹭点积分,主要我平时也对这个需求比较大。

当然,如果你本地遇到这个问题,也可以自己搞个虚拟机鼓捣出一版可用的,然后把文件拿出来放到本地就行!


后记


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

  1. 安装依赖问题,这个环境运行依赖的是i386的环境,大多64位系统中没有,安装过程中反复失败重来过程很繁琐。

  2. 卸载桌面!这是个巨坑,我一下午虚拟机被卸载了三次桌面,每次卸载完都重装重来。最后才得出上文踩坑2的办法。如果各位小伙伴在自己的电脑上安装,一定要小心不要一路无脑下一步,否则被卸载了桌面没点能耐很难妙手回春。

  3. 安装完成后无法运行,就是上面说的最后一点,这里就不赘述了。

软件运行后还有很多BUG,不过基本都是深度和Wine还有QQ的事情了,我们用户可操作掌控的空间很小。

以上操作可以写一个脚本一键搞定,但是没什么技术含量我懒得搞了,另外写脚本里如果出现-f -y这种强制不可控参数,一不小心卸载了桌面,反而会给大家造成更大的麻烦。


鸣谢


  • 【文章一链接】:https://forum.ubuntu.org.cn/viewtopic.php?f=73&p=3217021&sid=6194a64cefc1f4c5ac43dcd8729ca3c8

    本文中大体操作流程框架就是来自于这篇文章,然而也正是这篇文章中的脚本使用了sudo apt-get install -fy的操作,我的Ubuntu桌面被卸了三次!幸亏是虚拟机。

  • 【文章二链接】:https://www.lulinux.com/archives/1319

    这篇文章已经失了时效性,但是文中干货仍然非常有借鉴性,是一篇很好的收藏贴(不过频繁的赞赏弹窗着实有点烦人)。文章也提到了对深度和wszqkzqk同学的感谢,可怕的是这篇18年的帖子里写到wszqkzqk同学还未成年!25岁的我一口老血…

  • 【文章三链接】:https://github.com/Jactor-Sue/Deepin-Apps-Installation

    这款一年前的github项目是我最早使用的Wine QQ和微信的版本。即使现在除了被腾讯封印的正式版QQ,其他软件仍然可用。不过它的一键安装脚本同样使用了-fy的高危操作,我同事的桌面就这么没得,大家操作时一定要谨慎。

  • 【文章四链接】:https://bbs.deepin.org/forum.php?mod=viewthread&tid=183719

    deepin的官方论坛,新版的QQdeepin就是第一时间在这个帖子里发布的,回帖中大家也提出了很多坑,解决方案以及产品BUG。

  • 【wszqkzqk链接】:https://github.com/wszqkzqk/

    上面提到了这位未成年的小同学,真的是后生可畏啊!我也不清楚这位同学和深度的关系以及他扮演了怎样的角色,不过看样子我们现在Ubuntu下能用到这么好使的QQ微信与他的工作密不可分。就连旧版QQ不能用的时候,也是他的Github下第一时间被提issue,给力的是第二天,他便解决了这个问题。


 热 文 推 荐 
微信支付团队获 2 亿奖金,人均 20 万,再算上年终奖,网友:酸哭了!
扎心了!互联网公司福利缩水指南
HTML + CSS 为何得不到编程界的认可?
“对不起,我们只招有出色背景的技术人员!”
动漫美少女生成神器、猫的门禁...2019年十七大最佳机器学习项目 |年度盘点①
漫画:“排序算法” 大总结
2019中国区块链开发者大会圆满落幕!10大烧脑核心技术演讲干货全送上!
点击阅读原文,精彩继续。
你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存