debian 安装 wine 与 wine 微信备忘
2021-05-22 tech linux wine 12 mins 10 图 4350 字
最近使用 Debian 进行办公,微信在国内是必不可少的办公工具。在linux上有很两种实现方式,
- 集成web微信的http接口,这是最常见的,例如
- Snap 安装第三方微信客户端 Electronic-Wechat
- rambox 安装微信
- 虚拟化 win 软件,仅有 wine 一家。
两种方式对个人来说都差不多,基于web微信的可以搞更多的花样,但很可惜的是,我的账号不允许登陆 web 微信,我也不知道为什么。所以直接pass,只能走wine 微信这一条路。
这篇文章记录安装 wine 和 wine 微信的要点。
零、什么是wine
Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如Linux,Mac,FreeBSD和Solaris等)上运行 Windows 应用的兼容层。
Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是将 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面。
一、安装wine
1. 打开多架构支持
查看内核架构:
sudo dpkg --print-architecture
如果运行的是 64 位系统,需要开启 32 位架构支持
- 添加i386架构
sudo dpkg --add-architecture i386
2. 添加源并安装
- 下载 winehq.key 并导入
wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
- 添加 winehq 源,在
/etc/apt/sources.list
中增加一行
deb https://dl.winehq.org/wine-builds/debian/ buster main
- 更新源
sudo apt update
- 安装
winehq-stable
sudo apt install --install-recommends winehq-stable
查看wine版本号:
wine --version
二、配置wine
- 建议使用桌面用户进行安装,root用户未来要复制一些文件会比较麻烦。我暂时切到我的桌面用户kelu。
su kelu
- 由于我一般登陆两个微信,所以我希望能同时跑两个wine来解决这个问题。所以我在运行wine前都会选择各自的独立配置。
1. 配置不同的wine配置文件
mkdir ~/Wine
WINEARCH=win32 WINEPREFIX=~/Wine/WeChat winecfg
WINEARCH=win32 WINEPREFIX=~/Wine/WeChat2 winecfg
其中 WINEARCH=win32
的作用是告诉Wine创建一个32位的wineprefix。
wineprefix 是生成配置文件的目录。
有一个库 riched20 经常使用,提前添加一下,点击 Add:
三、安装微信
打开软件安装界面:
WINEPREFIX=~/Wine/WeChat wine uninstaller
选择 Install 安装微信:
安装完成。再次打开微信可以这样打开:
cd ~/Wine/WeChat/drive_c/Program Files/Tencent/WeChat
WINEPREFIX=~/Wine/WeChat wine WeChat.exe
四、解决微信中文显示
上面可以看到了,中文字符都是方框。下面来解决中文字符问题。
1. 拷贝win7的字体文件
无脑把win7的字体文件夹 C:\WINDOWS\Fonts\
打包复制一份到 Linux系统中。因为我起了两个配置文件,就是分别拷贝到下面的文件夹:
- ~/Wine/WeChat/drive_c/windows/Fonts
- ~/Wine/WeChat2/drive_c/windows/Fonts
2. 修改注册表
gedit ~/Wine/WeChat/system.reg # 一定要使用 gedit 或其他支持 gb2312/utf8 编码的编辑器修改这些文件,否则文件中的中文可能变乱码
-
搜索: LogPixels
找到的行应该是
[System\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts]
将其中的:
"LogPixels"=dword:00000060
改为:
"LogPixels"=dword:00000070
-
搜索: FontSubstitutes
找到的行应该是:
[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]
将其中的:
"MS Shell Dlg"="Tahoma" "MS Shell Dlg 2″="Tahoma"
改为:
"MS Shell Dlg"="SimSun" "MS Shell Dlg 2″="SimSun"
-
把下面的代码保存为 zh.reg
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes] "Arial"="simsun" "Arial CE,238"="simsun" "Arial CYR,204"="simsun" "Arial Greek,161"="simsun" "Arial TUR,162"="simsun" "Courier New"="simsun" "Courier New CE,238"="simsun" "Courier New CYR,204"="simsun" "Courier New Greek,161"="simsun" "Courier New TUR,162"="simsun" "FixedSys"="simsun" "Helv"="simsun" "Helvetica"="simsun" "MS Sans Serif"="simsun" "MS Shell Dlg"="simsun" "MS Shell Dlg 2"="simsun" "System"="simsun" "Tahoma"="simsun" "Times"="simsun" "Times New Roman CE,238"="simsun" "Times New Roman CYR,204"="simsun" "Times New Roman Greek,161"="simsun" "Times New Roman TUR,162"="simsun" "Tms Rmn"="simsun"
终端执行
WINEPREFIX=~/Wine/WeChat regedit zh.reg WINEPREFIX=~/Wine/WeChat2 regedit zh.reg
完成以上的操作,中文就显示出来了。
五、解决微信输入界面不显示中文
主要还是 riched20 的问题。我这边的解决办法是直接把 win7 的这个文件拷贝过来。 C:\WINDOWS\System32\riched20.dll
,拷贝到wine下相关的位置。要注意先给原文件做个备份。
- ~/Wine/WeChat/drive_c/windows/System32/riched20.dll
- ~/Wine/WeChat2/drive_c/windows/System32/riched20.dll
然后重启电脑。
六、制作图标
因为有两个微信,还是要制作不同的图标,以下是我的设置。
文件 wechat.desktop:
[Desktop Entry]
Name=WeChat
Exec=env WINEPREFIX="/home/kelu/Wine/WeChat" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/kelu/Wine/WeChat/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/WeChat/WeChat.lnk
Type=Application
StartupNotify=true
Path=/home/kelu/Wine/WeChat/dosdevices/c:/Program Files/Tencent/WeChat
Icon=8A76_WeChat.0
StartupWMClass=wechat.exe
文件 wechat2.desktop:
[Desktop Entry]
Name=WeChat2
Exec=env WINEPREFIX="/home/kelu/Wine/WeChat2" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/kelu/Wine/WeChat2/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/WeChat/WeChat.lnk
Type=Application
StartupNotify=true
Path=/home/kelu/Wine/WeChat2/dosdevices/c:/Program Files/Tencent/WeChat
Icon=8A76_WeChat.0
StartupWMClass=wechat.exe
分别给这两个文件赋予可执行权限:
chmod +x wechat.desktop
chmod +x wechat2.desktop
在桌面点击图标后,信任该文件,就可以看到图标了。