目录

参考文献

0. 引言

1. 安装Docker(已经有docker的直接跳过这部分,去看第二步)

2. 下载并安装Docker微信

3. 一些额外的配置操作

3.1 系统栏图标

3.2 将docker添加到sudo组,不需要每次用命令行时都输入密码

3.3 通过创建系统应用图标,通过点击GUI的方式打开微信

4. 结语

2022年10月更新


参考文献

https://linuxize.com/post/how-to-install-and-use-docker-on-ubuntu-20-04/

Linux Ubuntu 20.04 LTS Docker 安装 微信 QQ

【Docker】非root用户加入docker用户组省去sudo (三)_jwensh的博客-CSDN博客_docker ubuntu 权限

0. 引言

通过Docker安装微信相比于wine和deepwine都稳定的多,毕竟整个环境是被测试过重新封装好的,所以这种又稳定又不占用太多内存的方式在我使用一段时间之后还是基本满意的。

但是毕竟是第三方做的,肯定没有深度或者windows那种官方维护的体验好,不过只要能解决基本通信使用的需求就谢天谢地了。

1. 安装Docker(已经有docker的直接跳过这部分,去看第二步)

由于我人在国外,不需要换源,所以下载起来没有什么问题。有网络问题的,可能需要自己在国内解决一下,安装代码如下:

#先来更新一下包管理库
sudo apt update#添加一下docker的包仓库的依赖文件
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common#添加仓库钥匙
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -#把在线仓库连接加到你的更新源里
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"#默认安装最新版docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

检查一下docker状态:

sudo systemctl status docker

输出大概会显示Active(running)这类的信息,其实还挺吃内存的:

     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running)
TriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 1461 (dockerd)Tasks: 32Memory: 1.0GCGroup: /system.slice/docker.service└─1461 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

2. 下载并安装Docker微信

最开始先允许Docker访问并控制xserver,wayland也可以,毕竟有xwayland。我自己的电脑就是Gnome on wayland, 完全没有问题。

#允许所有用户访问xwindow
xhost +

如果返回以下信息,代表已经打开访问权限了,这不是报错信息:

access control disabled, clients can connect from any host

然后下载封装好的微信docker image:

#拉取镜像,耗时和你的网速有关,我1000M网线直连大概需要一分钟不到
docker pull bestwu/wechat

接下来是最重要的将镜像安装到创建好的容器当中,分别采用fcitx和ibus两种输入法。

第一个命令(或者你保存成脚本执行也可以)是用fcitx的:

docker run -d --name wechat\--device /dev/snd\--ipc=host\-v /tmp/.X11-unix:/tmp/.X11-unix\-v /home:/home/你的机器名字/docker_wechat\-v /home/你的机器名字/WeChatFiles:/WeChatFiles\-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 GID=`id -g`\-e UID=`id -u`\bestwu/wechat#第三行ipc=host是为了防止窗口持续闪退
#第五六行 -v /home/... 是你的容器数据和微信本身的用户数据的储存地址,你可以按照自己的需求修改
#切记用你的机器名代替掉代码中的汉字
#我的输入法是fcitx,sunpinyin,如果你是ibus,把 -e 的三行fcitx改成ibus就好

第二个命令用ibus的:

docker run \"${DEVICE_ARG[@]}" \--name wechat \-i \\-v "$HOME/WeChat/WeChat Files/":'/home/user/WeChat Files/' \-v "$HOME/WeChat/Applcation Data":'/home/user/.wine/drive_c/users/user/Application Data/' \-v /tmp/.X11-unix:/tmp/.X11-unix \\-e DISPLAY \-e DOCHAT_DEBUG \-e DOCHAT_DPI \\-e XMODIFIERS=@im=ibus \-e GTK_IM_MODULE=ibus \-e QT_IM_MODULE=ibus \-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)" \\--ipc=host \--privileged \bestwu/wechat#这个script可以用ibus输入
#来源:https://www.codenong.com/cs105890693/

个人建议你把我的命令复制到一个txt文件中,按照自己的路径和各种需求去修改,然后在直接复制粘贴到你的终端中。

安装好之后,大概要等一段时间,docker毕竟不是原生deb软件,等一分钟不到就会跳出一个扫二维码登陆的界面,正常登陆就好。

重启开机后可以通过命令行启动并关闭docker 微信:

sudo docker stop wechat   #关闭
sudo docker start wechat   #启动
sudo docker restart wechat   #重启

记得取消掉自动更新,否则会有报错。

3. 一些额外的配置操作

3.1 系统栏图标

关闭GUI窗口之后可能会有一个小的wine tray栏,你可以通过点击tray的图标重新打开最小化的窗口。退出微信的话可以通过右键 - 退出微信。

但是我不确定这种退出会不会释放docker container占用的内存,所以保险起见,还是通过命令行启动和退出docker wechat。

如果不喜欢wine的这个小窗口,可以通过gnome的插件,让它隐藏到系统tray栏里。

插件地址:TopIcons Plus - GNOME Shell Extensions

调试的话,用tweaks就好,

tweaks安装命令行如下:

#启用 Universe 仓库
sudo add-apt-repository universe#安装 Gnome Tweak Tool
sudo apt install gnome-tweak-tool#启动 Gnome Tweak Tool,或者GUI点击开启
gnome-tweaks

安装好extension后效果大概如下:

Horizontal alignment是调整icon的位置,自己按需调整位置和透明度(opacity)。最后效果:

这种插件有个bug,一旦你点击x键最小化窗口,当没有消息发来是,点击tray栏的微信图标就可以重新打开GUI界面,但是如果有别人给你发消息,栏里的微信icon就会消失,这样即便别人给你发消息,但是你没办法打开窗口。所以一般用 - 最小化窗口就行,不要点击 x 最小化。

3.2 将docker添加到sudo组,不需要每次用命令行时都输入密码

#检查一下已经存在的docker组
sudo cat /etc/group | grep docker
sudo usermod -aG docker $你的机器名#检查一下这个组最下面有没有你刚添加的docker
cat /etc/group#试一试可否不加sudo,直接用docker执行命令
docker  info#如果提示docker.sock权限不够,则修改/var/run/docker.sock权限
sudo chmod a+rw /var/run/docker.sock

之后命令行启用微信时候简单docker就可以:

docker start wechat
docker stop wechat
docker restart wechat

3.3 通过创建系统应用图标,通过点击GUI的方式打开微信

首先给这个预设的icon设置一下点击后要执行的shell脚本,名字叫run.sh :

xhost +
docker stop wechat
docker start wechat

这里首先执行的是xhost +,每次重启开机后如果不用icon,通过命令行无法直接docker start wechat的时候,一般问题都是xhost权限没有开放给docker,所以重启后要先执行xserve的权限开放命令。

把这个脚本和微信图标文件放到同一个文件夹,路径你自己定义,后面要用(忽略docker_wechat.sh):

图标谷歌图片随便下载一个,放到同一路径下,命名为wechat.png。

接下来我们要创建一个可以执行run.sh的系统图标,其实和其他应用创建桌面图标步骤一模一样:

#进入管理系统应用图标的路径
cd /usr/share/applications#创建一个叫wechat.desktop的文件
sudo gedit wechat.desktop

喜欢vim或者nano的用命令行就好,图形界面快一点,把如下代码按你自身情况修改后,复制进desktop.wechat:

[Desktop Entry]
Name=Wechat
Exec=bash "/home/你存放脚本路径/run.sh"
Terminal=true
Type=Application
Icon=/home/你存放脚本路径/wechat.png
StartupWMClass=Wechat
Comment=Wechat
MimeType=x-scheme-handler/Wechat;
Categories=Application;Development;

如果不报错就万事大吉了,如果提示权限不够,是因为xhost 和 docker 需要 root权限 ,所以这里使用 sudo bash 执行脚本(而非bash),这样每次双击图标需要输入一次密码:

[Desktop Entry]
Name=Wechat
Exec=sudo bash "/home/你存放脚本路径/run.sh"
Terminal=true
Type=Application
Icon=/home/你存放脚本路径/wechat.png
StartupWMClass=Wechat
Comment=Wechat
MimeType=x-scheme-handler/Wechat;
Categories=Application;Development;

保存后,通过图形界面你应该能看到这个icon了:

以后直接通过power键搜索wechat,回车就可以打开docker微信,会暂时弹出一个终端窗口运行脚本,会自动退出。如果你设置的是sudo bash,要手动输一下密码,等脚本执行完,大概十秒钟左右,毕竟不是原生Linux应用,一般情况下还是可以正常打开并使用的。

4. 结语

这个版本的微信还是2019年的2.8.4,作者好像也没有更新封装的deepwine微信,但是功能层面肯定够用了。目前来说不能使用摄像头,但是语音通话基本能用,听说对方能听到的通话质量很差,但是起码能用了。

腾讯不给开发一个linux版的微信,这也实在是没有办法的办法。总的来说比wine下的微信稳定太多,主要是环境是成功测试过的,就不会出现各种dll缺失的问题。微信这种臃肿无比的软件,能占用800多mb,内存的话目前感觉不是占用特别厉害,听说会吃850mb左右。

最后,有什么问题可以留言,抽空看到后会回复 : )


2022年10月更新

经过优麒麟(Ubuntu Kylin)维护了近一年的原生deb微信安装包现在也比较稳定了,最近试了一下,完全可以取代wine+docker组合了,这里把资源贴一下。据说已经更新到2.1.5,可以修改URL自行下载,我这边无法下载,2.1.4完美运行已经满足了。

下载地址:https://archive.ubuntukylin.com/software/pool/partner/weixin_2.1.4_amd64.deb

安装方法还是老样子,apt 或者dpkg都可以用,直接下载好本地安装就可以

sudo apt install ./你的包名字.deb

说一下目前已知的几个问题:

  1. 功能肯定和windows和macos版的没办法比。语音视频不能用这是必须的,表情只有默认,图片视频发送接收都没什么问题。语音正常播放,文字显示也没出现任何异常,也有可能是我之前安装过一些字体的原因。
  2. 第一次启动会很慢,应该是在从服务器上下载数据,总之对话是一个接一个的跳出来的,不过总算可以加载完所有对话,最近消息也都有,语音视频也都自动下载下来了。
  3. 界面有点小毛病,最上面的顶栏消失,有点别扭,但不影响使用。
  4. 朋友圈、公众号什么的不可以用。

总结一下:这个优麒麟和微信一起适配的deb原生版本绝对比QQ Beta那个要强太多了,主力Debian系的用户可以考虑一下了。

[已更新: 安装原生版微信] 超详细教程 - Ubuntu等Linux分支利用Docker安装并使用微信详细教程相关推荐

  1. 群晖NAS教程(二十二)、利用Docker安装minio

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 一.下载minio镜像 在群晖docker套件中,搜索minio,选择第一个进行下载. 二.配置 ...

  2. 本地虚拟机上的docker安装mysql_linux下利用Docker安装mysql的步骤

    作为一个测试人员,在学习的过程中,可能经常需要去在linux下安装一些软件,有的软件通过搜索别人的博客教程进行安装的话,随着一些软件的升级,以及虚拟机/服务器镜像版本不一致等外部因素,都有可能导致安装 ...

  3. Ubuntu下利用docker安装微信

    Ubuntu下利用docker安装微信 一.安装docker 二.允许所有用户访问X11服务 三.拉镜像 四.启动 五.常用命令 六.启动脚本 七.微信图标 八.新建桌面图标 本次安装是基于Ubunt ...

  4. 群晖NAS教程(二十一)、利用Docker安装DDNS动态域名解析,自动更新域名解析到公网IP(支持阿里云、腾讯云dnspod、Cloudflare、华为云)

    群晖NAS教程(二十一).利用Docker安装DDNS动态域名解析,自动更新域名解析到公网IP(支持阿里云.腾讯云dnspod.Cloudflare.华为云) 为了更好的浏览体验,欢迎光顾勤奋的凯尔森 ...

  5. VMWare安装使用、Linux命令、Docker安装和Linux项目部署

    Linux 一.Linux基础 1.1 Linux介绍 1.2 Linux常见发布版本 1.3 Linux和Windows的区别 1.4 Linux常见命令 二.VMWare安装使用 2.1 VMWa ...

  6. 群晖NAS教程(十)、利用Docker安装蚂蚁笔记(leanote)

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客 群晖NAS教程(十).利用Docker安装蚂蚁笔记(leanote) 蚂蚁笔记是一款特别棒的笔记软件,支持Markdown语法,是程序员必备的软件 ...

  7. 铁威马NAS教程之利用docker安装IYUU plus实现自动辅种

    IYUU是自动辅种工具,支持下载器集群,支持多盘位,支持多下载目录,支持连接远程下载器等,实现做种客户端之间的转移(transmission.qBittorrent之间随意互转). 铁威马在TOS中为 ...

  8. 群晖NAS教程(二十)、利用Docker安装zdir搭建个人云盘

    群晖NAS教程(二十).利用Docker安装zdir搭建个人云盘 为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000/ 一.下载与配置zdir容器 ...

  9. 群晖NAS教程(十六)、利用Docker安装GitLab管理代码工具

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客 群晖NAS教程(十六).利用Docker安装GitLab管理代码工具 群晖DSM上安装GitLab有两种方式,一种是直接在群晖套件上安装,另一种是 ...

最新文章

  1. 第二课.PyTorch入门
  2. MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen
  3. 相册服务器位置,王者荣耀游戏相册是什么 游戏相册开放服务器以及功能使用详细介绍...
  4. 快速获取csv数量_【数量技术宅|数据爬虫系列分享】如何获取免费的数字货币历史数据...
  5. MySQL中的字符集涵义及使用方法总结(二)
  6. mysql类似的数据库_MemSQL学习笔记-类似MySQL的数据库
  7. javaweb——新手上路1
  8. 《软件项目管理案例教程》应考概念要点及重点整理
  9. 修改手机定位 之 Fake Location 软件使用教程
  10. pyecharts绘制地铁图_2025年北京市轨道交通线路预绘图(含地铁、有轨电车、市郊铁路)...
  11. Linux中常用的英文总结
  12. Android 隐藏虚拟按键,并且全屏
  13. C/S结构是什么意思?有什么优点?
  14. 老司机揭秘手机定位技术,实在是精彩!
  15. kindeditor-4.1.10在线编辑器的使用
  16. 2022世界燕窝展|上海滋补品展|虫草、海参展谈卖货,还是卖品牌?不再简单。
  17. 如何写出同事看不懂的Java代码?
  18. JAVA进阶案例 TCP编程之网络聊天工具(客户端)
  19. 中国联通物联网连接服务能力介绍
  20. 函数可重入与不可重入理解

热门文章

  1. 柔索离散模型 Bushing衬套力 Simulink仿真
  2. 软件测试基础(十一)测试UI界面检查
  3. GitKraken Pro安装
  4. Python变量和数据类型,类型转换
  5. 深度:全面解析数据智能的金融“炼金术”!
  6. 蓝桥杯刷题-等额本金
  7. [Leetcode]658. Find K Closest Elements
  8. 宝石甲壳虫害怕什么?
  9. 恕瑞玛服务器维护,恕瑞玛 - 英雄联盟官方网站 - 腾讯游戏
  10. java 夏令时 重置偏移量_那些年我们踩过的坑——Java中Date夏令时日期转换不一致问题...