Wine安装64位微信

每年一月份,wine 都会发布新的稳定版本,由于 wine9.0 中包含有 WoW64 部分的重大变更,可以手动开启编译选项,Wayland driver 也有实验性支持,气氛已经烘托到这里了,不安装个微信 64 位微信手痒。

最新的小版本到 wine9.1 了,体验过程记录如下。

1. 编译安装最新版本 Wine

下载地址: https://dl.winehq.org/wine/source/9.x/wine-9.1.tar.xz

下载后解压

1tar -xvf wine-9.1.tar.xz

修改源码

为什么要修改源码,之前的文章解释过了,这里不再赘述。

图片解释:

wine-source-code-diff.webp

代码片段:

1    if (exStyle == 0x080800a0 && style != 0x80000000 ) // WeChat/WxWork shadow hwnd ; fix can not open chat info
2    {
3        FIXME("hack %x\n", cs.dwExStyle);
4        return NULL;
5    }

vscode 截图(ctrl + p,输入 win.c 定位到对应行,用心良苦):

wine-patch

进入安装目录

 1➜  wine-9.1 ./configure --enable-archs=i386,x86_64
 2... 此处省略一万行 ...
 3creating Makefile rules... done
 4configure: creating ./config.status
 5config.status: creating include/config.h
 6config.status: include/config.h is unchanged
 7config.status: linking tools/winewrapper to wine
 8config.status: executing include/stamp-h commands
 9config.status: executing tools/makedep commands
10config.status: executing Makefile commands
11
12configure: Finished.  Do 'make' to compile Wine.
13➜  wine-9.1

从上面最后的输出看 warning 全被消灭了,只有编译过的人才懂这份艰辛。

注意:WoW64 mode 不是默认开启的,手动开启 --enable-archs=i386,x86_64,好处是你可以把以前的一堆 32 位依赖包删掉了,谁不想系统干净整洁呢?这也是写这篇文章的动力之一。

编译安装

1➜  wine-9.1 make -j4

笔者 4 核心拖拉机 🚜,马力不足,编译需要 50 分钟左右。

1sudo make install

默认安装 wine 相关程序到:

 1➜  wine-9.1 ls -al /usr/local/bin/wine*
 2-rwxr-xr-x 1 root root   25544 Jan 29 14:45 /usr/local/bin/wine*
 3-rwxr-xr-x 1 root root    1973 Jan 29 14:45 /usr/local/bin/wineboot*
 4-rwxr-xr-x 1 root root  950208 Jan 29 14:49 /usr/local/bin/winebuild*
 5-rwxr-xr-x 1 root root    1973 Jan 29 14:45 /usr/local/bin/winecfg*
 6-rwxr-xr-x 1 root root    1973 Jan 29 14:45 /usr/local/bin/wineconsole*
 7lrwxrwxrwx 1 root root       7 Jan 29 14:49 /usr/local/bin/winecpp -> winegcc*
 8-rwxr-xr-x 1 root root    1973 Jan 29 14:45 /usr/local/bin/winedbg*
 9-rwxr-xr-x 1 root root 1292800 Jan 29 14:49 /usr/local/bin/winedump*
10-rwxr-xr-x 1 root root    1973 Jan 29 14:45 /usr/local/bin/winefile*
11lrwxrwxrwx 1 root root       7 Jan 29 14:49 /usr/local/bin/wineg++ -> winegcc*
12-rwxr-xr-x 1 root root  277608 Jan 29 14:49 /usr/local/bin/winegcc*
13-rwxr-xr-x 1 root root   95127 Jan 29 14:49 /usr/local/bin/winemaker*
14-rwxr-xr-x 1 root root    1973 Jan 29 14:45 /usr/local/bin/winemine*
15-rwxr-xr-x 1 root root    1973 Jan 29 14:45 /usr/local/bin/winepath*
16-rwxr-xr-x 1 root root   49800 Jan 29 14:45 /usr/local/bin/wine-preloader*
17-rwxr-xr-x 1 root root 4264728 Jan 29 14:45 /usr/local/bin/wineserver*

2. wine 安装 64 位微信

去微信官网下载微信安装包

下载的是 windows 版本

download-wechat-step1

这次选 64 位,没有问题的,躺雷先锋测试过了,大胆选。

download-wechat-step2

直接安装

1➜  Downloads wine WeChatSetup.exe

后面就是正常操作,一路下一步 next,都应该会的。

到这里 64 位微信能正常运行,但是输入框输入是有问题的。

3. 解决输入框输入异常

安装 winetricks

1sudo apt install winetricks

升级 winetricks,老实说我以前不知道这个还能自己升级,升级后各种下载地址失效的问题会得到解决。

1sudo winetricks --self-update

安装riched20 riched30 richtx32 msftedit,具体少哪一个是不是不可以,没测试过。

1winetricks riched20 riched30 richtx32 msftedit

安装完上述包后,微信输入框就正常了,能回删、光标正常定位、发表情。

过程苦不苦,只能问 xxx 那个 xxx,要文明,人人都忙着赚钱,怪谁呢?

4. 其它

开启 Wayland driver

1wine reg.exe add HKCU\\Software\\Wine\\Drivers /v Graphics /d x11,wayland

没发现有什么作用 😅。

要修复 waybar 图标错误,请搜索我之前写的文章。

发图证明最新版本能工作

newest wechat
wechat type

之前有部分读者问 cpu 使用率是否正常,微信启动、点开设置的时候的确是会卡一会儿,之后没有什么问题。资源使用都没 Firefox 高,日常使用 👌 的。

wechat cpu

5. 如何删除 32 位依赖包

参考这文章: https://askubuntu.com/questions/113301/how-to-remove-all-i386-packages-from-ubuntu-64bit

如果发现删除不了,添加 allow-remove-essential -f参数,后果自负,不承担任何连带责任,我反正都删干净了没有问题,毕竟现在 64 位是主流,读者自己判断。

5. 总结

为什么要自己手动编译呢?

  • 自己动手丰衣足食,随时能用上新功能新版本;
  • 帮助 Linux 新人,毕竟很多人看到微信不能用,直接劝退了。

残留问题,各种用到微信内置浏览器的地方,搜一搜、视频号、小程序面板、截图都是没法工作的,一般在 Linux 上也不用这些功能,无关痛痒,主要用聊天、朋友圈、公众号等功能。

最后修改于: Wednesday, February 21, 2024
欢迎关注微信公众号,留言交流。

相关文章:

翻译: