Wine安裝微信保姆教程
當你讀到這篇文章的時候,我想你已經摺騰過 wine 微信一段時間了。從 N 年前使用 Linux 工作生活以來,騰訊公司的相關產品一直缺乏對 Linux 的友好支持。等到大家不怎麼用 QQ 的時候,它開始支持了。之前用官方和 UOS 合作的 deb 包微信,簡單聊天還是可以的,功能過於簡單,捉襟見肘,幾年過去了,也沒見更新。
在當前這種狀況,如果你需要在 Linux 下使用新版微信,幾乎只有 wine 一條路,虛擬機的方式太笨重了。
本文介紹 2 種方式 wine 安裝微信,一種適合新手操作較簡單的; 一種複雜一些,解決特定桌面環境下的一些問題。坦白講,爲了測試這 2 種方式,解決一些相關問題,非常費時耗力,部分內容,應該是中文互聯網世界第一次出現(反正我是沒有搜到有人記錄),考慮到用戶羣體龐大,只能用愛心負重前行,希望終有一天,人們不需要這麼倒騰(這的確有點浪費時間)。
題外話不多說,開始操作。
方式一、 簡單 wine 方式 安裝微信
先看效果圖:
這種方式是官方推薦的, wine 官方提供多種 os 的安裝包,還是很不錯的。
參考文檔,以 Ubuntu 爲例,其它發行版類似。
-
- 32 位系統支持
1sudo dpkg --add-architecture i386
-
- 包源相關設置
1sudo mkdir -pm755 /etc/apt/keyrings
2sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
-
- 下載源文件
寫這個文章的時候,用的 Ubuntu 23.10
1sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/mantic/winehq-mantic.sources
-
- 安裝 wine
當前沒有 stable,安裝 staging 版本也還行。
1sudo apt install --install-recommends winehq-staging
官方文檔讓安裝的是winehq-stable
,實際上我寫這個文章的時候,官方還沒有打包,會提示找不到(直接去倉庫網頁裏面查找,的確沒有!)。如果怕不穩定,等官方出 stable 的時候再操作一邊也很簡單。
1➜ images git:(main) ✗ sudo apt install --install-recommends winehq-stable
2[sudo] password for mephisto:
3Reading package lists... Done
4Building dependency tree... Done
5Reading state information... Done
6E: Unable to locate package winehq-stable
經過前面 4 個步驟,wine 就安裝好了。接着使用 wine 安裝最新版本微信。
-
- 去微信官網下載微信安裝包
- 下載的是 windows 版本
- 選 32 位或者 64 位
建議選 32 位,我安裝 64 位的時候遇到的問題多一些
-
- 安裝
網上很多教程弄得花裏胡哨的,其實默認的就好,WeChatSetup_x86.exe
就是 32 位的版本。
1wine WeChatSetup_x86.exe
這樣,簡單安裝的方式就大功告成了!
安裝完成後,會自動給創建一個啓動器文件,用啓動器或者其它方式找到啓動就好(簡單說,其它軟件怎麼運行啓動,你就怎麼操作)
1➜ ~ cat ~/Desktop/WeChat.desktop
2[Desktop Entry]
3Name=WeChat
4Exec=env WINEPREFIX="/home/mephisto/.wine" wine C:\\\\users\\\\Public\\\\Desktop\\\\WeChat.lnk
5Type=Application
6StartupNotify=true
7Path=/home/mephisto/.wine/dosdevices/c:/Program Files/Tencent/WeChat
8Icon=E282_WeChat.0
9StartupWMClass=wechat.exe
有興趣的可以看看這個啓動文件,Name、 Exec 、Icon 是較爲關鍵的元素。
-
- 其它問題
如果你遇到字體方框的問題,大概率是缺少字體, 把 Windows 中的 simsun.ttc 複製到 ~/.wine/drive_c/windows/Fonts/
,可以解決宋體顯示問題。
1cp fake_simsun.ttc ~/.wine/drive_c/windows/Fonts
字體網上很多鏈接可以下載的,因版權問題,我不提供鏈接。
arch wiki 的解決方式,軟鏈接字體到目標目錄
1cd ${WINEPREFIX:-~/.wine}/drive_c/windows/Fonts && for i in /usr/share/fonts/**/*.{ttf,otf}; do ln -s "$i" ; done
輸入框光標不能正常定位(表相爲無法將光標移動到目標位置,修正輸入錯誤時非常惱人)的問題,解決辦法如下:
- 首先,安裝 winetricks
1sudo apt install winetricks
- 接着,使用 winetricks 安裝 riched20(很多也一併安裝了 gdiplus riched20 riched30,我測試了下 riched20 就能解決問題)
1winetricks gdiplus riched20 riched30
安裝 riched20 的時候,會提示下載 InstMsiW.exe
超時或者 404,真的是苦不堪言。
讀者需要自行去網上搜索下載地址(或者關注我的個人公衆號“兩畝六分地”,留言"芝麻開門"獲得下載地址,地址會不定期更換,小破站帶寬有限不用網盤請原諒,網上的各種網盤地址也是經常失效的)
下載地址獲取示例:
下載文件放到.cache
下的正確位置,再執行上面的命名安裝。
1 ~ cd .cache/winetricks/
2➜ winetricks pwd
3/home/mephisto/.cache/winetricks
4➜ winetricks tree
5.
6├── cmd
7├── corefonts
8├── msls31
9│ └── InstMsiW.exe
10├── riched30
11│ └── InstMsiA.exe
12├── sourcehansans
13│ └── SourceHanSans.ttc.zip
14├── track_usage
15├── win2ksp4
16│ └── W2KSP4_EN.EXE
17└── win7sp1
18 └── windows6.1-KB976932-X86.exe
19
208 directories, 6 files
測試光標定位正常,如動圖所示。
方式二、 複雜 wine 方式 安裝微信
有興趣的同學建議先閱讀官方文檔,我就是地鐵上手機橫屏看的。
老實說,對絕大部分用戶,我建議使用上面簡單無痛的方式 wine 安裝微信。
但是,不是所有用戶都用 Gnome 和 KDE 等主流桌面環境,也不是每個人安裝的時候都平坦順利。
由於筆者使用 labwc 自己搭建的環境,方式一安裝的 wechat 在啓動時候,是個大黑屏,sway 環境也是相同遭遇。就好像一個大黑布罩住了微信界面一樣,什麼都看不了,此時光標移動到不同區塊還是有反應的,盲人摸象。
黑框長這樣,外面一個黑圈,裏面一個黑框。
爲了解決這個問題,耽誤了好長時間,直到搜到這個文章。
解決方式就是直接修改 wine 的源碼,重新編譯。重新編譯真的非常耗時(i5 4 核心電腦太差,感覺差不多 40 分鐘,因爲不知道哪些模塊不需要,默認參數)。編譯一次差不多一個小時,前後爲了測試不同版本(32bit 和 64bit),不同依賴庫的影響,大概變編譯了 4 次!
當然這樣折騰也是有好處的,解決了黑屏的問題,可以學到一點用處不大的知識,能幫助到讀者,沒錯,就是你 😅。
-
- 下載 wine 源碼
源碼應該都能找到,找你認爲合適的版本,我一般用最新的。
1wget https://dl.winehq.org/wine/source/8.x/wine-8.19.tar.xz
-
- 解壓後進入目錄
1➜ wine-8.19 ls
2aclocal.m4 AUTHORS config.status configure.ac dlls fonts libs LICENSE.OLD MAINTAINERS nls programs server VERSION
3ANNOUNCE config.log configure COPYING.LIB documentation include LICENSE loader Makefile po README tools wine
4➜ wine-8.19 pwd
5/home/mephisto/Downloads/wine-8.19
-
- 修改 wine 源碼
圖片解釋:
代碼片段:
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 截圖:
-
- 安裝基礎依賴
實在是懶得整理了,看下面的操作記錄,
1➜ ~ history |grep install |grep :i386
2 9809 sudo apt install libx11-dev:i386
3 9810 sudo apt install libfreetype6-dev:i386 libfreetype6-dev
4 9812 sudo apt install libxrender-dev:i386 libgnults-dev:i386
5 9814 sudo apt install libxrender-dev:i386
6 9816 sudo apt install libgl-dev:i386
7 9818 sudo apt install libasound2-dev:i386
8 9860 sudo apt install libxcursor-dev:i386
9 9861 sudo apt install libfreetype-dev:i386
10 9862 sudo apt install libfontconfig-dev:i386
11 9863 sudo apt install libgnutls28-dev:i386
基礎依賴裝好後,運行./configure
沒有看到 warning 就表明依賴庫裝的差不多了。
提示缺什麼就根據官方文檔補什麼。
獨家內容: 強烈建議 libfreetype-dev
和 libfontconfig-dev
一定要安裝,不然微信安裝界面中文都是方塊(不會提示 warning,我就是漏了這 2 個,重新編譯又是 1 個小時!)。
當然如果你是高手,清楚哪些是有用,哪些沒有用,直接忽略就好。
1➜ wine-8.19 ./configure
2checking build system type... x86_64-pc-linux-gnu
3checking host system type... x86_64-pc-linux-gnu
4checking whether make sets $(MAKE)... yes
5#####此處省略一萬行#####
6config.status: executing include/stamp-h commands
7config.status: executing tools/makedep commands
8config.status: executing Makefile commands
9
10configure: libxi 32-bit development files not found, the Xinput extension won't be supported.
11configure: XShm 32-bit development files not found, X Shared Memory won't be supported.
12configure: XShape 32-bit development files not found, XShape won't be supported.
13configure: libXxf86vm 32-bit development files not found, XFree86 Vidmode won't be supported.
14configure: libxrandr 32-bit development files not found, XRandr won't be supported.
15configure: libxinerama 32-bit development files not found, multi-monitor setups won't be supported.
16configure: libxcomposite 32-bit development files not found, Xcomposite won't be supported.
17configure: libOSMesa 32-bit development files not found (or too old), OpenGL rendering in bitmaps won't be supported.
18configure: Wayland 32-bit development files not found, the Wayland driver won't be supported.
19configure: OpenCL 32-bit development files not found, OpenCL won't be supported.
20configure: pcap 32-bit development files not found, wpcap won't be supported.
21configure: libpcsclite not found, smart cards won't be supported.
22configure: libdbus 32-bit development files not found, no dynamic device support.
23configure: libsane 32-bit development files not found, scanners won't be supported.
24configure: libusb-1.0 32-bit development files not found (or too old), USB devices won't be supported.
25configure: libv4l2 32-bit development files not found.
26configure: libgphoto2 32-bit development files not found, digital cameras won't be supported.
27configure: libgphoto2_port 32-bit development files not found, digital cameras won't be auto-detected.
28configure: libpulse 32-bit development files not found or too old, Pulse won't be supported.
29configure: gstreamer-1.0 base plugins 32-bit development files not found, GStreamer won't be supported.
30configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
31configure: libudev 32-bit development files not found, plug and play won't be supported.
32configure: libSDL2 32-bit development files not found, SDL2 won't be supported.
33configure: libcapi20 32-bit development files not found, ISDN won't be supported.
34configure: libcups 32-bit development files not found, CUPS won't be supported.
35configure: libkrb5 32-bit development files not found (or too old), Kerberos won't be supported.
36configure: libnetapi not found, Samba NetAPI won't be supported.
37configure: libvulkan and libMoltenVK 32-bit development files not found, Vulkan won't be supported.
38
39configure: Finished. Do 'make' to compile Wine.
-
- 編譯安裝 wine
1make -j `nproc`
2make install
默認安裝到/usr/local/bin/
下
1➜ ~ ls -al /usr/local/bin/wine*
2-rwxr-xr-x 1 root root 22668 Nov 7 13:45 /usr/local/bin/wine
3-rwxr-xr-x 1 root root 25528 Nov 6 17:37 /usr/local/bin/wine64
4-rwxr-xr-x 1 root root 49760 Nov 6 17:37 /usr/local/bin/wine64-preloader
5-rwxr-xr-x 1 root root 1973 Nov 7 13:45 /usr/local/bin/wineboot
6-rwxr-xr-x 1 root root 761180 Nov 7 13:46 /usr/local/bin/winebuild
7-rwxr-xr-x 1 root root 1973 Nov 7 13:45 /usr/local/bin/winecfg
8-rwxr-xr-x 1 root root 1973 Nov 7 13:45 /usr/local/bin/wineconsole
9lrwxrwxrwx 1 root root 7 Nov 7 13:46 /usr/local/bin/winecpp -> winegcc
10-rwxr-xr-x 1 root root 1973 Nov 7 13:45 /usr/local/bin/winedbg
11-rwxr-xr-x 1 root root 1070420 Nov 7 13:46 /usr/local/bin/winedump
12-rwxr-xr-x 1 root root 1973 Nov 7 13:45 /usr/local/bin/winefile
13lrwxrwxrwx 1 root root 7 Nov 7 13:46 /usr/local/bin/wineg++ -> winegcc
14-rwxr-xr-x 1 root root 242128 Nov 7 13:46 /usr/local/bin/winegcc
15-rwxr-xr-x 1 root root 95127 Nov 7 13:46 /usr/local/bin/winemaker
16-rwxr-xr-x 1 root root 1973 Nov 7 13:45 /usr/local/bin/winemine
17-rwxr-xr-x 1 root root 1973 Nov 7 13:45 /usr/local/bin/winepath
18-rwxr-xr-x 1 root root 45452 Nov 7 13:45 /usr/local/bin/wine-preloader
19-rwxr-xr-x 1 root root 3560536 Nov 7 13:45 /usr/local/bin/wineserver
這 2 步沒什麼好說的,懂的都懂。
-
- 使用手編的 wine 安裝微信
這裏和方式一的不同點是使用的 wine 不同(/usr/bin/wine
和/usr/local/bin/wine
)。
操作之前建議備份下 ~/.wine
目錄, 我設置.wine
是當前使用的,.wine_32
、.wine_64
分別是 32 位和 64 爲備份,有備無患!
1➜ ~ ls .wine*
2.wine:
3dosdevices drive_c system.reg userdef.reg user.reg winetricks.log wrapper.cfg
4
5.wine_32:
6dosdevices drive_c system.reg userdef.reg user.reg wrapper.cfg
7
8.wine_64:
9dosdevices drive_c system.reg userdef.reg user.reg
安裝,這一步和之前一樣。
1/usr/local/bin/wine WeChatSetup_x86.exe
-
- 其它問題
-
其它如字體缺失,處理方式相同,不再贅述。
-
關閉時候進程退出不乾淨,直接全殺了,一般都不怎麼關。
1pkill WeChat
-
wine system tray,waybar 下目前無解,貌似要等 wine 合併代碼,影響不大。
-
部分功能無法使用,搜一搜、視頻號,無關緊要不看也罷。
寫在最後
使用自己編譯的方式很繁瑣,在某些情況下不得不爲之。也感慨 wine 項目的強大,現在使用的就是自己編譯的 wine,感覺良好!電腦配置高的,編譯時間估計能縮減很多。
至此,釘釘、飛書、微信都可以正常在 Linux 下順暢使用了。如果讀者有疑問,可以搜索本站相關教程。
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。
相關文章:
- Ubuntu安裝chrome的方法總結
- Ubuntu安裝微信(Ubuntu install Wechat)
- Ubuntu notify-send 定時通知
- ibus rime美化定製
- Ubuntu 安裝LDAP客戶端
- Ubuntu 23.10 釘釘無法啓動解決方法
- Ubuntu開機啓動加速
- Ubuntu手動升級Libreoffice
- Ubuntu設置alacritty爲默認終端
- Ubuntu 22.10連接藍牙耳機報錯br-connection-profile-unavailable解決方法