Wine - 运行 Windows 软件
从 Windows 切换到 Ubuntu 后,你可能会发现某些常用的 Windows 软件没有 Linux 版本。Wine 就是为了解决这个问题而诞生的——它可以让你在 Linux 上直接运行 Windows 应用程序,而无需安装虚拟机或双系统。
Wine 是什么
Wine(Wine Is Not an Emulator)不是一个模拟器或虚拟机,而是一个兼容层。它通过重新实现 Windows 的 API(应用程序编程接口),让 Windows 程序”以为”自己在 Windows 上运行,实际上却在 Linux 上原生执行。
这意味着:
- 不需要 Windows 许可证
- 性能接近原生(因为不是在虚拟机中运行)
- 并非所有 Windows 软件都能完美运行(兼容性取决于 Wine 的 API 实现程度)
安装 Wine
安装 stable 版本
Ubuntu 官方仓库提供了 Wine 的稳定版本:
# 启用 32 位架构支持(许多 Windows 程序是 32 位的)
sudo dpkg --add-architecture i386
# 更新软件包列表
sudo apt update
# 安装 Wine
sudo apt install wine64 wine32
# 验证安装
wine --version安装 staging 版本(推荐)
Wine Staging 包含最新的实验性补丁,通常兼容性更好:
# 启用 32 位架构
sudo dpkg --add-architecture i386
# 下载并添加 WineHQ 仓库密钥
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
# 添加 WineHQ 仓库(Ubuntu 26.04 代号 resolute;用 lsb_release 动态匹配更稳妥)
sudo wget -NP /etc/apt/sources.list.d/ "https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources"
# 更新并安装
sudo apt update
sudo apt install --install-recommends winehq-staging
# 验证安装
wine --versionWine 初始化
首次运行 Wine 时,它会自动创建默认的 Windows 环境:
# 初始化 Wine(会创建 ~/.wine 目录)
wineboot
# 打开 Wine 配置工具
winecfgwinecfg 允许你设置:
- Windows 版本(推荐设置为 Windows 10 或 Windows 11)
- 图形、音频驱动
- 各应用程序的独立配置
Winetricks 安装和使用
Winetricks 是 Wine 的辅助工具,用于安装 Windows 运行时组件、字体和常用库。许多 Windows 程序需要这些组件才能正常运行。
# 安装 Winetricks
sudo apt install winetricks
# 打开图形界面
winetricks --gui常用 Winetricks 组件
# 安装常用字体(解决中文显示问题)
winetricks cjkfonts
winetricks fakechinese
# 安装 Visual C++ 运行库
winetricks vcrun2019
winetricks vcrun2022
# 安装 .NET Framework
winetricks dotnet48
# 安装 DirectX
winetricks d3dx9
winetricks dxvk
# 安装 Windows 核心字体
winetricks corefonts
# 安装 Windows 组件
winetricks msxml6
winetricks riched20
# 设置 Windows 版本
winetricks win10如果在使用 Wine 运行某个 Windows 程序时遇到中文显示为方块的问题,首先尝试 winetricks cjkfonts。如果仍有问题,可以手动将 Windows 的中文字体(如 simsun.ttc、msyh.ttc)复制到 ~/.wine/drive_c/windows/Fonts/ 目录中。
WINEPREFIX 管理
WINEPREFIX 是 Wine 的一个核心概念。每个 WINEPREFIX 就是一个独立的 Windows 环境(类似独立的 C 盘),包含独立的注册表、程序文件和配置。
为什么要使用独立的 WINEPREFIX
- 不同程序可能需要不同的 Windows 版本或依赖库
- 一个程序的配置变更不会影响其他程序
- 可以轻松删除某个程序而不影响其他程序
- 方便备份和迁移
创建和使用
# 默认 WINEPREFIX 在 ~/.wine
# 为特定程序创建独立的 WINEPREFIX
WINEPREFIX=~/wine-apps/wechat wineboot
# 在指定 WINEPREFIX 中运行 winecfg
WINEPREFIX=~/wine-apps/wechat winecfg
# 在指定 WINEPREFIX 中安装 Winetricks 组件
WINEPREFIX=~/wine-apps/wechat winetricks cjkfonts vcrun2019
# 在指定 WINEPREFIX 中运行程序
WINEPREFIX=~/wine-apps/wechat wine /path/to/setup.exe
# 创建 32 位 WINEPREFIX(某些旧程序需要)
WINEARCH=win32 WINEPREFIX=~/wine-apps/old-app wineboot
# 删除某个程序(直接删除 WINEPREFIX 目录)
rm -rf ~/wine-apps/wechat常用 Wine 命令
# 运行 Windows 可执行文件
wine program.exe
# 运行 MSI 安装包
wine msiexec /i program.msi
# 打开 Wine 的资源管理器
wine explorer
# 打开 Wine 的注册表编辑器
wine regedit
# 打开 Wine 的记事本
wine notepad
# 打开 Wine 的任务管理器
wine taskmgr
# 终止所有 Wine 进程
wineserver -k常用 Windows 软件兼容性
以下是一些常见 Windows 软件在 Wine 下的运行情况:
| 软件 | 兼容性 | 说明 |
|---|---|---|
| 微信 | 较好 | 建议使用独立 WINEPREFIX,需安装 cjkfonts |
| 一般 | 新版 QQ 已有 Linux 原生版本,推荐直接使用 | |
| 企业微信 | 一般 | 基本功能可用,部分功能可能异常 |
| Microsoft Office | 一般 | Office 2016 及以下版本兼容性较好,推荐用 LibreOffice 或 WPS 替代 |
| Adobe Photoshop | 差 | 旧版本可运行,推荐使用 GIMP 或 Krita 替代 |
| Notepad++ | 很好 | 完美运行 |
| 7-Zip | 很好 | 完美运行,但 Linux 有原生替代 |
| WinRAR | 很好 | 完美运行 |
| 各种小工具 | 视情况 | 简单的工具类软件通常兼容性较好 |
你可以在 Wine AppDB 上查看特定软件的兼容性评级和安装指南。
原生 Linux 替代方案
在尝试用 Wine 运行 Windows 软件之前,建议先看看是否有原生 Linux 版本或优质替代品:
| Windows 软件 | Linux 原生替代 |
|---|---|
| Microsoft Office | LibreOffice、WPS Office(有 Linux 版) |
| Adobe Photoshop | GIMP、Krita |
| Notepad++ | Kate、Geany、VS Code |
| QQ Linux 版(官方) | |
| 微信 | 微信 Linux 版(官方,基于 electron) |
| 迅雷 | Motrix、aria2 |
Bottles - 图形界面管理工具
如果你不喜欢在命令行中管理 Wine,Bottles 是一个出色的图形化 Wine 管理工具。它提供了现代化的界面来创建和管理 Wine 环境。
安装 Bottles
# 通过 Flatpak 安装(推荐)
flatpak install flathub com.usebottles.bottles
# 运行 Bottles
flatpak run com.usebottles.bottlesBottles 的优势
- 图形化界面:创建、配置和管理 Wine 环境无需命令行
- 环境模板:预配置的”游戏”、“应用”、“自定义”模板
- 依赖管理:一键安装 vcrun、dotnet、dxvk 等依赖
- 版本管理:可以选择不同版本的 Wine 运行器
- 备份和恢复:方便地备份和恢复 Wine 环境
- 运行器切换:支持 Wine、Wine-GE、Proton-GE 等多种运行器
使用 Bottles 的基本流程
- 打开 Bottles,点击 “创建新 Bottle”
- 选择环境类型(应用、游戏或自定义)
- 输入名称,选择 Wine 运行器版本
- 创建完成后,点击 “运行可执行文件” 安装 Windows 程序
- 在 Bottles 中管理已安装的程序
Wine 与 Proton 的区别
Wine 和 Proton 都可以在 Linux 上运行 Windows 程序,但它们的侧重点不同:
- Wine 是一个通用的 Windows 兼容层,适合运行各类 Windows 应用程序(办公软件、工具、聊天软件等)
- Proton 是 Valve 基于 Wine 开发的,专门针对游戏进行了优化。它集成了 DXVK(将 DirectX 转换为 Vulkan)、VKD3D(DirectX 12 支持)等游戏相关组件
- Proton 通过 Steam 使用,只需在 Steam 设置中启用 “Steam Play”,即可直接运行 Windows 游戏
- 如果你要运行 Windows 游戏,优先使用 Steam + Proton
- 如果你要运行 Windows 应用程序,使用 Wine 或 Bottles
更多游戏相关内容,可以参考 ProtonDB 查看游戏兼容性报告。
常见问题排查
中文显示异常
# 安装中文字体
winetricks cjkfonts
# 如果仍有问题,手动复制字体
cp /path/to/simsun.ttc ~/.wine/drive_c/windows/Fonts/
cp /path/to/msyh.ttc ~/.wine/drive_c/windows/Fonts/程序报错或崩溃
# 在终端中运行程序查看错误信息
wine /path/to/program.exe
# 启用调试输出
WINEDEBUG=+all wine program.exe 2> debug.log
# 尝试不同的 Windows 版本
winecfg # 在 Applications 标签中修改
# 尝试安装缺失的依赖
winetricks vcrun2019 dotnet48分辨率和 DPI 问题
# 打开 winecfg
winecfg
# 在 Graphics 标签中调整 DPI 设置
# 或者通过注册表修改
wine reg add "HKCU\Control Panel\Desktop" /v LogPixels /t REG_DWORD /d 144 /f重置 Wine 环境
如果 Wine 环境出现严重问题,最简单的方法是删除并重建:
# 删除默认 Wine 环境
rm -rf ~/.wine
# 重新初始化
wineboot
winecfgWine 虽然不能保证所有 Windows 软件都能完美运行,但对于很多常见应用来说已经足够好用了。配合 Bottles 等图形化工具,使用体验也在不断改善。如果某个软件实在无法在 Wine 中运行,可以考虑使用虚拟机(如 GNOME Boxes 或 VirtualBox)作为备选方案。