这次安装软件的并非官方的版本,而是在x86Ubuntu上基于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参数不经过问询很可能被卸载桌面
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 参加下文中的踩坑部分
其他什么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中找到对应图标即可运行。
顺利的话,只需要上面很简单的两步,就可以完成。然而现实并不总是这么顺利。
之前装过wine的小伙伴,此次升级安装基本不会有什么坑。然而对于首次安装的小伙伴,安装这些包会缺很多系统依赖。
如果报错依赖缺失,解决方案是:执行sudo apt-get install -f
进行修复,千万不要加-y参数。
sudo apt-get install [Ctrl+shift+v]
粘贴刚才复制下来的所有包手动安装sudo apt-get install -f
进行修复,如果明确显示卸载0个包再输入y往下进行,否则建议仍然手动安装对应的依赖。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库,只要把步骤一安装完更新到最新就可以。
这个问题,让我前前后后放弃了好几次。
在我执行完步骤一、二没有任何报错以后,在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官网的论坛中看到:
这一下子让我看到了希望,我进入到系统里~/.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上蹭点积分,主要我平时也对这个需求比较大。
当然,如果你本地遇到这个问题,也可以自己搞个虚拟机鼓捣出一版可用的,然后把文件拿出来放到本地就行!
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
以上就是整个QQ微信在Linux上安装的全部踩坑过程。最大的坑有三个:
软件运行后还有很多BUG,不过基本都是深度和Wine还有QQ的事情了,我们用户可操作掌控的空间很小。
以上操作可以写一个脚本一键搞定,但是没什么技术含量我懒得搞了,另外写脚本里如果出现-f -y
这种强制不可控参数,一不小心卸载了桌面,反而会给大家造成更大的麻烦。
sudo apt-get install -fy
的操作,我的Ubuntu桌面被卸了三次!幸亏是虚拟机。wszqkzqk
同学的感谢,可怕的是这篇18年的帖子里写到wszqkzqk同学还未成年!!!25岁的我一口老血…-fy
的高危操作,我同事的桌面就这么没得,大家操作时一定要谨慎。感谢网友指出,有一个用docker的办法更优雅一些:
运行微信:
docker pull bestwu/wechat
docker run -d --name wechat --device /dev/snd/ -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/TencenFiles:/TencentFiles -e DISPLAY=unix$DISPLAY -e XMODIFIERS=@im=fcitx -e QT_IM_MODULE=fcitx -e GTK_IM_MODULE=fcitx -e AUDIO_GID=`getent group audio | cut -d: -f3` -e VIDEO_GID=`getent group video | cut -d: -f3` -e GID=`id -g` -e UID=`id -u` bestwu/wechat:latest
运行QQ:
docker pull bestwu/qq
docker run -d --name qq --device /dev/snd/ -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/TencenFiles:/TencentFiles -e DISPLAY=unix$DISPLAY -e XMODIFIERS=@im=fcitx -e QT_IM_MODULE=fcitx -e GTK_IM_MODULE=fcitx -e AUDIO_GID=`getent group audio | cut -d: -f3` -e VIDEO_GID=`getent group video | cut -d: -f3` -e GID=`id -g` -e UID=`id -u` bestwu/qq:latest
可惜安装的都是旧版的QQ和微信,而且也不是很稳定。