用 Linux 桌面的人,大概率都碰到过必须跑 Windows 软件的场景。开虚拟机占资源,双系统切来切去麻烦,Wine 算是目前最省心的轻量化方案。它是个开源兼容层,把 Windows API 调用转换成 Linux 系统调用,不需要跑完整的虚拟系统,开销低很多。这篇把安装、日常使用到调优排障的内容整理了一遍,都是实际用得到的东西。
主流发行版 Ubuntu、Debian、Fedora、Arch 都支持 Wine,优先装稳定版,踩坑概率低很多。

64 位系统记得先开 32 位架构支持,很多老程序和游戏只有 32 位版本,没开的话装完也跑不起来。
我一开始也以为现在都是 64 位了不用管,结果踩了好几次坑。Ubuntu 和 Debian 系执行下面两条命令就行:
sudo dpkg --add-architecture i386 sudo apt update
各发行版的安装命令不一样。Ubuntu/Debian 用 apt 装 winehq-stable,记得加 --install-recommends,缺依赖的话后续麻烦很多:
sudo apt install --install-recommends winehq-stable
Fedora 直接 dnf 装:
sudo dnf install wine
Arch 源里就有,pacman 直接装:
sudo pacman -S wine
装完跑一下 wine --version,能输出版本号就说明安装成功了。
第一次运行 winecfg 的时候,会自动在家目录生成 .wine 隐藏文件夹,整套虚拟 Windows 环境都存在这个目录里。图形界面里能调的选项不少,常用的几项这里提一下。 Windows 版本根据目标程序选,老软件一般 Win7 兼容性最好,新一点的程序和游戏可以试 Win10。驱动器映射可以把 Linux 本地目录映射成 Windows 盘符,比如把数据盘 /mnt/data 映射成 Z 盘,跨系统传文件方便。图形设置里的 DPI 缩放、虚拟桌面分辨率,高分屏或者程序显示错位的时候经常要调。
跑程序最简单的就是命令行直接调,wine 后面跟 exe 文件的绝对路径或者相对路径都行,比如:
wine ~/Downloads/Notepad++_installer.exe
要给程序传参数直接跟在后面就可以,和 Linux 本地程序用法差不多。需要临时指定环境变量的话,前面加 env 前缀,比如改临时目录:
env TEMP=/tmp wine program.exe
图形界面操作更省事,文件管理器右键点 EXE,选"用 Wine 打开"就能跑,运行过的程序会自动生成快捷方式。
KDE、GNOME 这些主流桌面,大部分时候双击就能直接打开,和本地文件没什么区别。
安装程序的流程和 Windows 下一模一样,没什么学习成本。唯一要注意的是,安装路径尽量选默认的 C 盘 Program Files 目录,别装到网络盘或者移动存储里,容易出各种读写异常的问题,排查起来很麻烦。
卸载的话,运行 wine uninstaller 会调出程序管理界面,和 Windows 的添加删除程序用法一样。
嫌麻烦也可以直接进 .wine/drive_c/Program Files 删掉对应文件夹,Wine 没那么强的注册表绑定,一般不会留垃圾。
要同时跑多个兼容性要求不一样的程序,建议用独立 Wine 前缀做隔离。只要在命令前指定 WINEPREFIX 环境变量指向一个新目录就行,比如:
WINEPREFIX=~/wine_apps/app1 winecfg
执行后会在指定路径生成一套全新的独立环境,每个前缀都有独立的注册表、C 盘和配置。
折腾不同设置的时候不会互相影响,搞坏了直接删整个前缀目录就行,不用动全局配置,非常方便。
缺运行库和组件的话,不用自己到处找 DLL 拷,用 winetricks 就行。比如装 VC++ 2019 运行库:
winetricks vcrun2019
装 DirectX 相关组件:
winetricks d3dx9
几个常碰到的小问题,提前说一下处理方式。碰到 DLL 缺失报错,很多时候其实是缺基础字体,跑一下 winetricks corefonts 能解决一大半。
中文显示乱码方块,把 Windows 系统里的字体文件复制到 .wine/drive_c/windows/Fonts 目录下基本就能好。报权限错误的话,给程序所在目录改成 755 权限,大概率能解决。
需要改注册表的话,运行 wine regedit 就能打开编辑器,用法和 Windows 自带的基本没差。常用的场景比如修复程序启动路径,去 HKEY_CLASSES_ROOT\Applications 下面改;要加系统环境变量,找 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment 这个路径。
平时基本用不上,真碰到疑难杂症再折腾。
来此加密自2018年上线以来,深耕SSL证书领域8年,已帮助海量用户实现全站HTTPS。支持免费申请多域名、通配符甚至稀缺的IP证书。无论是个人博客还是企业级应用,都能在这里找到一站式的加密解决方案。配合全自动化的申请流程,让网络安全变得触手可及。
性能调优没有万能的设置,几个常用的调整方向可以试。 老软件优先切 Win7 兼容模式,新游戏试试 Win10,很多时候流畅度差不少。 图形后端选 Vulkan 比 OpenGL 性能好,在 winecfg 里就能切换。跑 3D 程序和游戏的时候,差距挺明显的。 大型应用或者吃内存的程序,用 64 位前缀也就是 wine64 更合适;如果是老程序,追求兼容性就用 32 位前缀。 排查问题的时候可以开调试日志,WINEDEBUG=+relay 会输出详细的 API 调用日志,定位报错很方便。就是日志量非常大,正常用别开,会卡。
实际用下来,几类常用软件的兼容性都还不错。 办公软件里,Microsoft Office 2010、2013 和 WPS Office 都能正常运行,日常处理文档表格够用。 设计类工具,Photoshop CS6、AutoCAD 2014 这类中型应用也没问题,更高版本的就不一定了。 游戏是 Wine 很常用的场景,配合 DXVK 做 DirectX 转换,魔兽世界、星露谷物语这类游戏都能流畅运行。 甚至开发工具也能跑,Visual Studio Code、PyCharm 这些 IDE 都能配置起来,应急做跨平台开发没问题。
整体看下来,80% 以上的 Windows 程序靠 Wine 都能满足需求。碰到特别复杂、依赖组件多的应用,可以搭配 PlayOnLinux 这类前端工具,自带很多现成的配置脚本,不用自己一步步调,能省不少事。