CrossOver 安装微信(WeChat)

前言

笔者曾在文章”CentOS 7 安装常用桌面软件 “中,推荐使用 electronic-wechat 作为 Linux 微信客户端,可惜在 CentOS 7 环境下的长期使用体验比较一般,例如接收到消息时无声音提示,且微信的托盘图标不会闪烁,同时由于 electronic-wechat 是在 Web 版微信的基础上开发的,这就导致新注册的微信账号登录受限,最终无法使用。经过一番尝试,发现 CrossOver 可以近乎完美地安装微信,而且运行的是微信官方原生的二进制执行文件。本教程适用于 Debian/Ubuntu/CentOS 系的 Linux 发行版,文章末尾附有微信运行的最终效果图

软件版本说明

  • CrossOver: 19.0.0
  • 微信 PC 客户端: 2.7.1.88
  • CrossOver 容器: WinXp-64-bit
  • Linux 系统的输入法:搜狗输入法 For Linux 2.2.0.0108

CrossOver 安装运行微信遇到的坑

CrossOver 安装微信的过程中可能遇到了以下问题,本文后面会详细一一给出对应的解决方法:

  • 微信启动时偶尔崩溃
  • 启动微信提示 WeChatWin.dll 文件缺失
  • 微信的输入框无法显示光标与文字,只能复制黏贴
  • 微信屏幕截图后,无法直接发送图片
  • 微信的输入框无法使用搜狗输入法(Linux 版)输入中文

Linux 安装 CrossOver

CrossOver 支持 Ubuntu、Mint、Debian 使用 .deb 包安装,支持 Fedora、RHEL 使用 .rpm 包安装,支持其他发行版(例如 CentOS)使用 .bin 安装包安装。CrossOver 的安装比较简单,此处不再累述,可参考” 官方安装教程 “。推荐使用 root 用户进行安装,若安装过程中自定义了 CrossOver 的安装路径,则需要新增环境变量来指定 CrossOver 的安装路径,否则 CrossOver 部分命令将无法使用,如下所示:

1
2
3
4
5
6
# 添加环境变量,指定CrossOver的自定义安装路径
# vim /etc/profile
export CX_ROOT=/usr/local/cxoffice

# 使配置生效
# source /etc/profile

CrossOver 安装微信

微信官网下载 PC 版的微信客户端后,可参考”CrossOver 如何安装未知应用程序 “里的步骤,在 CrossOver 上安装原生的微信 PC 客户端。值得一提的是,这里的 CrossOver 容器建议选择 WinXp-64-bit

解决微信运行后出现的各种问题

微信启动时偶尔崩溃

微信需要运行在 CrossOver 的 WinXp-64-bit 容器中,否则微信启动时可能会崩溃。

微信屏幕截图后,无法直接发送图片

微信屏幕截图,如果按” 钩” 确定截图完成,那么截图将则直接消失,不会将图片显示到输入框里,导致无法直接发送图片。建议截图完成后保存图片到本地,再从本地将图片拖拽到输入框里,这样就可以正常发送图片了。强烈推荐使用系统自带的截图工具或者第三方截图工具(例如 Shutter)替代微信的截图功能,因为可以将粘贴板里的图片直接粘贴到微信的输入框里。

启动微信提示 WeChatWin.dll 文件缺失

原因是 Linux 系统缺少 lib32-libldap 依赖库,导致 CrossOver 无法加载特定的 dll 文件,安装上对应的依赖库后,重启微信客户端即可。

1
2
3
4
5
# 适用系统:Debian/Ubuntu/Mint
# apt-get install -y libldap-2.4-2:i386

# 适用系统:Fedora/RHEL/CentOS
# yum install -y compat-openldap.i686 openldap.i686 openldap-devel.i686 compat-openldap.x86_64 openldap.x86_64 openldap-devel.x86_64

微信输入框无法显示光标与文字,只能复制黏贴

下载 Windows 版的 riched20.dll 动态链接库(必须是这个版本),然后将下载得到的 riched20.dll 文件拷贝到 CrossOver 容器对应的 system32syswow64(重点) 目录下,即覆盖掉 CrossOver 容器内的 riched20.dll 文件。例如当 CrossOver 容器的名称为 WinXp-64-bit,那么则需要将 Windows 版的 riched20.dll 拷贝到 ~/.cxoffice/WinXp-64-bit/drive_c/windows/system32~/.cxoffice/WinXp-64-bit/drive_c/windows/syswow64 目录下,拷贝完成后重启微信客户端。

微信输入框无法使用搜狗输入法(Linux 版)输入中文

如果在 Linux 系统内,已经安装了 Linux 版的搜狗输入法,但无法在微信的输入框内输入中文,这可能是系统缺少了输入法的环境变量配置信息导致的。Crossover 的应用快捷方式文件默认存放在 ~/.local/share/applications/ 文件夹中,从中找到 xxx微信xxx.desktop 文件,然后在 desktop 文件中找到 lnk 文件的路径,最后使用编辑器添加相关配置信息到 lnk 文件中,完成后重启微信客户端。

1
2
3
4
5
6
7
8
9
10
11
12
# 查看微信的应用快捷方式文件
# cat ~/.local/share/applications/cxmenu-cxoffice-955d8f89-fd24-4c49-addb-5dc0e8a63a1e-2l9ih12-微信.desktop

# 找到这行内容:Exec="/home/xxxx/.cxoffice/WinXp-64-bit/desktopdata/cxmenu/StartMenu.C^5E3A_ProgramData_Microsoft_Windows_Start^2BMenu/Programs/微信/微信.lnk" %u

# 编辑lnk文件,在 #!/bin/sh 之后和 exec 之前添加以下环境变量配置
# vim /home/xxxx/.cxoffice/WinXp-64-bit/desktopdata/cxmenu/StartMenu.C^5E3A_ProgramData_Microsoft_Windows_Start^2BMenu/Programs/微信/微信.lnk
export XIM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

CrossOver 安装小小中文输入法

若上面配置了输入法的环境变量,依然无法解决微信中文输入的问题,此时可将小小输入法安装到与微信同一 CrossOver 容器之下,安装后可以使用该输入法输入中文。值得一提的是,CrossOver 安装小小输入法的方法和上面 CrossOver 安装微信的方法是一样的,点击此处可从本站下载小小输入法(V2.5.0-0)的 EXE 安装文件。

小小中文输入法的安装注意事项

  • 小小输入法安装完成后,不要勾选” 运行小小输入法”,直接点击” 完成” 按钮即可,否则 CrossOver 的安装程序会一直运行,除非点击菜单栏的托盘图标手动退出小小输入法
  • 小小输入法安装完成后,容器不会出现小小输入法的启动快捷方式,即在应用程序列表中无法直接通过点击图标的方式来启动输入法,但可以参照以下方法手动创建小小输入法的启动快捷方式
  • 由于在容器中的 c:/Program Files (x86)/yong/ 目录下已经有了安装后的文件夹,因此可以在容器中通过 "运行命令" 的功能,手动创建小小输入法的快捷方式或者输入命令 /home/xxxx/.cxoffice/WinXp-64-bit/dosdevices/c:/Program Files (x86)/yong/yong.exe 来直接运行小小输入法,其中创建小小输入法快捷方式的步骤如下图:

yong-input-0

yong-input-1

yong-input-2

yong-input-3

小小中文输入法的使用注意事项

  • 通过 CrossOver 安装的程序使用小小输入法后与宿主机上安装的输入法是互不干扰的,两者都可以独立正常使用
  • 小小输入法中英文切换的默认快捷键是左边的 Ctrl 键,支持自定义输入法的快捷键
  • 小小输入法每次都需要手动启动,且首次使用需要通过小小输入法在菜单栏上的托盘图标切换到拼音输入法
  • 若已经通过菜单栏的托盘图标切换到拼音输入法,但在微信输入框中依然无法输入中文,此时可以单击菜单栏上的托盘图标,直至右下角出现小小输入法的状态栏,然后再尝试输入中文
  • 若上面的方法都无法使用小小输入法输入中文,此时试试重启输入法,然后再多试几次
  • 建议先启动小小输入法,然后再启动微信应用

微信运行的最终效果图

crossover-wechat

常见问题

微信版本升级

若需要升级微信的版本,首先在官网下载最新版微信 PC 客户端的二进制执行文件,然后通过 UI 界面卸载 CrossOver 容器里的旧版微信,最后在容器里安装最新版的微信 PC 客户端即可。

CrossOver 试用期已过

CrossOver 默认试用时间为 15 天,在 Linux 系统下,如果 15 天过后还想继续试用,可以执行以下操作进行破解。CrossOver 的试用时间验证信息是写在每一个 winebottle 容器中的(其本质就是在容器所在目录下创建文件了名称为 .eval 的隐藏文件 ),不同容器之间是完全隔离的(不是写在全局配置中)。即使一个已使用的容器过期了,依然可以创建新的容器,并重新计算试用期,所以不需要重装 CrossOver 软件。

1
2
# 删除.eval文件
$ rm ~/.cxoffice/容器名称/.eval

安装其他 Windows 原生应用

在 Linux 环境下,若需要安装 QQ、TIM、迅雷、Office 等其他主流的 Windows 应用,可以参考上面 CrossOver 安装微信 PC 客户端的过程;因为安装步骤基本都是大同小异的,重点在于细节问题的解决。

Linux 安装微信的可选方案总结

参考博客