大家好,我是冯哥的缓存。很多朋友装了Linux之后,总会遇到一个现实问题:有些软件只有Windows版,死活找不到Linux替代品。比如某些老旧的行业软件、网银U盾驱动、或者公司内部只发Windows版的工具。
这时候 Wine 就派上用场了。它能让你在Linux上直接运行Windows软件,不用装虚拟机、不用切双系统。
💡 提示: Wine 不是万能药。有些软件能完美运行,有些只能部分运行,有些压根跑不起来。建议先查一下 WineHQ应用数据库 看看你想跑的软件评分如何(Platinum/Gold 基本没问题,Silver 可能有些小毛病,Bronze/Garbage 别抱太大希望)。
一、Wine到底是什么?
简单说:Wine 是一个翻译层,把 Windows 程序调用的 Windows API 翻译成 Linux 能理解的系统调用。
不是虚拟机——它不模拟整个Windows系统,不虚拟CPU和内存。性能损失比虚拟机小很多。
不是双系统——它直接在Linux里运行,不需要重启切换。
| |
|---|
| Windows API的Linux实现(翻译层),不是模拟器 |
| |
| 读作"外恩"(wine,红酒),WINE = WINE Is Not an Emulator |
| 一套把Windows系统调用翻译成Linux系统调用的库 |
| 通常5%~15%,比虚拟机(30%~50%)小得多 |
Wine vs 虚拟机 vs 双系统
| | | |
|---|
| | | |
| | | |
| | 需启动虚拟机(~30秒)+ Windows启动(~30秒) | |
| | | |
| | | |
| | | |
| | | |
💡 提示: 如果你只需要偶尔运行一两个Windows小工具,Wine是最省事的方案。如果工作流高度依赖Windows全家桶(Office全套、企业微信、钉钉等),虚拟机更合适。
二、安装方式对比
| | | |
|---|
| | 版本很老(Ubuntu 22.04 给的是 Wine 6.0,落后主版本2年以上) | |
| | | |
| | | |
| | | |
⚠️ 注意: 尽量不要用 sudo apt install wine 装系统自带版本!它落后太多,很多新软件不兼容。花几分钟走一遍 WineHQ 官方仓库安装,一劳永逸。
三、WineHQ 官方仓库安装(推荐)
以下以 Ubuntu 22.04 / 24.04 为例。其他发行版请参考 WineHQ下载页面。
第一步:启用32位架构
很多Windows软件仍然是32位的(特别是老软件和部分安装程序),必须先启用32位支持:
sudo dpkg --add-architecture i386
sudo apt update
第二步:安装 WineHQ 仓库密钥
# 创建密钥目录
sudomkdir -pm755 /etc/apt/keyrings
# 下载并安装 WineHQ 官方签名密钥
sudo wget -O /etc/apt/keyrings/winehq-archive.key \
https://dl.winehq.org/wine-builds/winehq.key
第三步:添加 WineHQ 软件源
Ubuntu 24.04(Noble):
sudo wget -NP /etc/apt/sources.list.d/ \
https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sources
Ubuntu 22.04(Jammy):
sudo wget -NP /etc/apt/sources.list.d/ \
https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
如果不确定系统版本,先用这个命令查一下:
lsb_release -a
# 看 Codename 那一行:noble(XX.XX)/ jammy(XX.XX)/ focal(XX.XX)
第四步:更新并安装
sudo apt update
sudo apt install --install-recommends winehq-stable
💡 提示:--install-recommends 确保安装了推荐的依赖包。安装过程会下载几百MB的文件,耐心等待。安装完成后弹出配置窗口属于正常现象,不要慌。
第五步:验证安装
wine --version
# 应输出类似:wine-9.0(或其它版本)
四、stable / devel / staging 三个版本怎么选?
WineHQ 提供了三个安装包,对应不同场景:
| | | | |
|---|
| stable(稳定版) | winehq-stable | | | 日常使用首选 |
| devel(开发版) | winehq-devel | | | |
| staging(测试版) | winehq-staging | | | |
💡 提示: 对普通用户来说,装 winehq-stable 就够了。staging 虽然有些额外补丁能提高特定软件的兼容性,但也更容易出各种奇怪问题。等遇到 stable 跑不了的软件,再考虑换 staging。
五、初次运行与环境配置
创建 Wine 环境
安装完 Wine 后,先运行一下 winecfg 来创建初始环境:
winecfg
第一次运行会提示安装 Wine Mono 和 Wine Gecko(开源版的 .NET 和 IE 替代品),弹窗时点"安装"即可。然后会出现配置窗口:
| |
|---|
| 可以设置Windows版本(默认Windows 10) |
| 可以用原生Windows DLL替换Wine内置DLL |
| |
| |
| |
默认配置一般不用改。设置完点"确定"关闭窗口。
Wine 虚拟C盘在哪?
~/.wine/drive_c/
结构跟真实的Windows C盘相似:
~/.wine/drive_c/
├── Program Files/ # 32位程序安装位置
├── Program Files (x86)/ # 64位程序安装位置(64位前缀)
├── users/ # 用户目录
├── windows/ # 系统文件(相当于C:\Windows)
│ ├── system32/
│ └── Fonts/ # 字体目录(解决中文乱码的关键)
└── 你的程序数据/
六、Winetricks——依赖一键安装工具
很多Windows程序依赖特定的运行库(.NET框架、Visual C++运行时、DirectX等)。Wine 默认不包含这些,需要手动装。
Winetricks 就是解决这个问题的——它是一个辅助脚本,帮你一键安装各种依赖。
安装 Winetricks
# Ubuntu/Debian 系统自带仓库版本较旧但够用
sudo apt install winetricks
# 或者装最新版
sudo wget -O /usr/local/bin/winetricks \
https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
sudochmod +x /usr/local/bin/winetricks
Winetricks 常用依赖速查表
| | |
|---|
corefonts | 微软核心字体(Arial、Times New Roman等) | |
cjkfonts | | |
vcrun2019 | | |
vcrun2015 | | 同上(2015/2017/2019/2022共享同一套) |
dotnet48 | | |
dotnet472 | | |
d3dx9 | | |
d3dcompiler_43 | | |
dxvk | | |
allfonts | | |
riched20 | | |
msxml6 | | |
gdiplus | | |
ie8 | | |
安装示例:打好中文软件的基础
# 装完 Wine 后马上执行,打好基础
winetricks corefonts cjkfonts vcrun2019
这三步解决90%中文软件的基础依赖问题:
corefontscjkfontsvcrun2019 → 不弹"缺少MSVCP140.dll"之类的错误
⚠️ 注意: 安装 winetricks 组件时,每个组件可能会弹出多个安装向导窗口,按默认选项一路下一步就行。不要跳过也不要手动改选项,winetricks 已经帮你配置好了参数。
七、Wine前缀(WINEPREFIX)——一软件一环境
这是 Wine 最重要的进阶概念。
什么是前缀?
默认情况下 Wine 把所有东西都放在 ~/.wine/。但有时你需要:
- 装一个必须用 .NET 4.8 的软件,另一个却跟 .NET 冲突
这时候就需要创建独立的前缀——每个软件或每个"场景"一个独立目录,互不干扰。
创建和使用独立前缀
# 创建一个新前缀(如果不指定目录,Wine会自动创建)
WINEPREFIX=~/wine-myapp winecfg
# 以后在这个前缀里装软件
WINEPREFIX=~/wine-myapp wine ~/Downloads/setup.exe
# 在这个前缀里装依赖
WINEPREFIX=~/wine-myapp winetricks corefonts cjkfonts vcrun2019
# 运行已安装的软件
WINEPREFIX=~/wine-myapp wine "C:\Program Files\MyApp\myapp.exe"
32位 vs 64位前缀
默认创建的是64位前缀。如果需要32位前缀(老软件很常见):
# 创建32位前缀
WINEARCH=win32 WINEPREFIX=~/wine-32app winecfg
⚠️ 注意:WINEARCH 只能在新建前缀时指定。一旦创建了前缀,WINEARCH 就不能改了,要换只能删除重建。
| | | |
|---|
| WINEPREFIX=~/wine-app winecfg | drive_c/Program Files/ | |
| WINEARCH=win32 WINEPREFIX=~/wine-app winecfg | drive_c/Program Files/ | |
前缀管理建议
| | |
|---|
| 所有软件共用一个 ~/.wine/,简单但容易冲突 | |
| | |
| | |
每个前缀大约占用 200MB~500MB 基础空间(不含你装的软件),所以"一软件一前缀"虽然最干净,但也要有占用存贮空间的心理准备。
八、常见报错速查
| | |
|---|
wine: could not load kernel32.dll | | sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install --reinstall winehq-stable |
002c:fixme:font:... | | winetricks corefonts cjkfonts |
MFC140.dll / VCRUNTIME140.dll not found | | winetricks vcrun2019 |
.NET Framework 初始化错误 | | winetricks dotnet472 |
wine: cannot find L"C:\\windows\\system32\\xxx.exe" | | 检查路径是否用 "C:\\..." 格式,软件是否已装到此前缀 |
Application tried to create a window, but no driver... | | 确保显卡驱动正确安装,尝试 sudo apt install mesa-utils |
| | winetricks cjkfonts |
err:winediag:nodrv_CreateWindow | | 检查 ~/.wine 目录权限,sudo chown -R $USER:$USER ~/.wine |
| | LANG=zh_CN.UTF-8 wine setup.exe |
九、实战练习
按顺序完成以下操作,把本篇内容串起来:
# 1. 启用32位架构
sudo dpkg --add-architecture i386 && sudo apt update
# 2. 查看你的Ubuntu版本
lsb_release -a
# 3. 安装密钥和仓库(以Ubuntu 24.04为例)
sudomkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key \
https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ \
https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sources
# 4. 安装 Wine
sudo apt update
sudo apt install --install-recommends winehq-stable
# 5. 首次运行,创建默认环境
winecfg
# (弹窗提示装Mono/Gecko时点安装,配置窗口直接点确定)
# 6. 安装 Winetricks
sudo apt install winetricks
# 7. 安装基础依赖(字体+C++运行库)
winetricks corefonts cjkfonts vcrun2019
# 8. 创建一个独立前缀试试
WINEPREFIX=~/wine-test winecfg
# (又弹一次配置窗口,注意这次是独立的~/wine-test/目录)
# 9. 验证整体环境
wine --version
ls ~/.wine/drive_c/
十、总结
| |
|---|
| |
| 装完 Wine 马上执行 winetricks corefonts cjkfonts vcrun2019 |
| 用 WINEPREFIX=~/wine-xxx 给每个软件或场景独立环境 |
| 老软件用 WINEARCH=win32 创建32位前缀 |
| |
💡 提示: Wine 的安装只是第一步。后面你会遇到各种软件的依赖问题。下篇会介绍 Bottles 和 PlayOnLinux 这两个图形化管理工具,让你通过点击鼠标来管理 Wine 前缀和依赖,不用记一堆命令。还会给出几个常见软件的具体安装范例。
下一篇: 《Linux Wine安装攻略(下)——Bottles与PlayOnLinux》,敬请期待!