在ubuntu上安装微信不像在windows上那么操作简单,在安装使用过程碰到的问题,主要是开启后闪退问题记录以下,仅供参考:
本文使用docker 安装配置微信,也可以使用wine 安装,但是笔者找了几个版本的微信安装包,兼容性总不好。

  • 首先安装docker并开启
    sudo apt install docker.io
    sudo systemctl enable --now docker
    sudo service docker start
  • 安装微信
    docker pull bestwu/wechat
  • 获取audio的组ID
    getent group audio | cut -d: -f3
    parrotsec系统中,值为 29
  • 创建一个yml文件,比如说这里创建 docker-tim.yml
    //创建格式
    gedit 文件位置/文件名比如:
    gedit docker-wechat.yaml
    以上操作等价于gedit ~/docker-wechat.yaml 是在主目录中创建一个名为docker-wechat.yaml文 件可以更改其他目录比如:
    gedit ~/文档/docker-wechat.yaml
  • 弹出文件进行编辑并保存
 version: '2'
 services:
  wechat:
    image: bestwu/wechat
    container_name: wechat
    devices:
      - /dev/snd
    volumes:
      - /tmp/.X11-unix:/tmp/.X11-unix
      - $HOME/WeChatFiles:/WeChatFiles
    environment:
      - DISPLAY=unix$DISPLAY
      - QT_IM_MODULE=fcitx
      - XMODIFIERS=@im=fcitx
      - GTK_IM_MODULE=fcitx
      - AUDIO_GID=29 # 可选 默认63(fedora) 主机audio gid 解决声音设备访问权限问题
      - GID=1000 # 可选 默认1000 主机当前用户 gid 解决挂载目录访问权限问题
      - UID=1000 # 可选 默认1000 主机当前用户 uid 解决挂载目录访问权限问题

安装完毕 执行命令
sudo docker-compose -f docker-wechat.yaml up
运行后发现会有闪退情况,排查:
sudo ldconfig -p | grep -i gl.so

    libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
	libwayland-egl.so.1 (libc6) => /usr/lib/i386-linux-gnu/libwayland-egl.so.1
	libwayland-egl.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so
	libflite_usenglish.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libflite_usenglish.so.1
	libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
	libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
	libQt5EglFsKmsSupport.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5EglFsKmsSupport.so.5
	libQt5EglFSDeviceIntegration.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5EglFSDeviceIntegration.so.5
	libOpenGL.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libOpenGL.so.0
	libOpenGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libOpenGL.so
	libGLESv2.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLESv2.so.2
	libGLESv2.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLESv2.so
	libGLESv1_CM.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1
	libGLESv1_CM.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLESv1_CM.so
	libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
	libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/libGL.so.1
	libGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so
	libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libEGL.so.1
	libEGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/libEGL.so.1
	libEGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libEGL.so

查看,发现libGL.so并没有指向nvidia的文件,我的电脑上没有安装Nvidia驱动并且没有正确的指向libGL.so。这种情况一般发生在没有用Termial使用apt-get 安装驱动,或者自己从官网上下载deb安装包。重新安装一下nvidia驱动就可
ubuntu-drivers devices
在这里插入图片描述
选择推荐即可
sudo apt-get install nvidia-driver-440
安装后对比
在这里插入图片描述
Nvidia驱动正确的指向libGL.so了
再次执行:sudo docker-compose -f docker-wechat.yaml up
基本上解决闪退问题了。
笔者比较懒,不想每次启动微信都敲这么多代码,所以弄了一个简单的脚本
新建一个.sh文件内容如下

#!/bin/bash
sudo docker-compose -f ~/docker-wechat.yaml up
保存

  • 输入文字不能切换中文问题
    在这里插入图片描述
    一定要确认当前“键盘输入法系统:是fcitx”还是IBus
    修改.yaml文件的配置
    在这里插入图片描述
    注意:这里用小写
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐