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 上也不用這些功能,無關痛癢,主要用聊天、朋友圈、公衆號等功能。

最後修改於: Friday, February 2, 2024

相關文章:

翻譯: