wine不能直接“安装exe”,只能运行它;能否成功取决于是否提前配对架构、前缀和依赖——跳过这三步,90%的.exe会静默崩溃或报dll找不到。

直接说结论:Wine 不能“安装 EXE”,只能运行它;而能否成功运行,取决于你是否提前配对了架构、前缀和依赖——跳过这三步,90% 的 .exe 会静默崩溃或报 dll 找不到。
为什么 wine program.exe 一运行就报错 libwine.so.1 找不到
这是典型的 i386 架构未启用 导致的底层缺失,不是 Wine 没装好。
- Ubuntu/Debian 系统默认不支持 32 位二进制加载,哪怕你装了
wine64,运行 32 位 .exe(绝大多数老软件、绿色版、国产工具)仍会失败 - 错误现象包括:
libwine.so.1: cannot open shared object file、Segmentation fault、启动后立刻退出且无日志
必须先执行:
sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install wine wine64 wine32
Fedora/RHEL 8+ 用户则需:
sudo dnf install wine-core.i686 wine-core.x86_64
注意:
wine32包不是可选组件,是 32 位程序运行的必要载体;只装wine64无法补全它。
WINEPREFIX 不设就等于把所有软件塞进同一个注册表抽屉
~/.wine 是默认前缀,但它是全局共享的——A 软件改了 ole32.dll 行为,B 软件下次启动就可能卡死。
- 所有正式使用场景都应显式指定前缀,例如:
WINEARCH=win32 WINEPREFIX=~/.wine-foobar wine foobar_setup.exe
-
WINEARCH=win32强制创建 32 位环境(即使系统是 x86_64),避免出现MSVCP140.dll not found这类“明明装了 vcrun2015 却找不到 DLL”的问题 - 第一次运行时用
wineboot -u初始化前缀,比直接跑 setup.exe 更稳
容易踩的坑:用
WINEARCH=win64去跑 32 位程序,或反过来;Wine 不会自动降级/升级架构,只会硬报错。
winetricks 装 dotnet48 或 vc2015 失败的真正原因
不是网速慢,是微软官方分发链接已大规模失效(2025 年底起集中下线),Winetricks 默认源无法拉取。
- 直接运行
winetricks vcrun2015卡住或报Failed to download,优先换国内镜像:WINETRICKS_SOURCE=https://gitee.com/ChenYongJian/winetrickscn/raw/master/ winetricks -q vcrun2015
-
dotnet48必须按顺序装:dotnet40→dotnet45→dotnet472→dotnet48,跳步必失败 -
vcrun2015和vcrun2019不兼容共存,后者必须在前者成功后再装;否则注册表冲突导致 DLL 加载错乱
关键细节:winetricks 安装的是「对应前缀下的依赖」,必须确保
WINEPREFIX环境变量已正确设置,否则它默默往~/.wine里写,跟你当前用的前缀完全无关。
运行时弹出 err:module:import_dll Library xxx.dll not found 怎么办
这类错误不是缺“某个 DLL”,而是缺「该 DLL 对应的完整运行时包 + 匹配的架构」。
- 先确认程序位数:用
file program.exe查看,输出含PE32就是 32 位,必须用WINEARCH=win32前缀 - 再查缺哪个运行库:错误中出现
MSVCP140.dll→ 装vcrun2015;mscoree.dll→ 装dotnet40或更高 - 最后验证 DLL 是否真落进前缀:检查路径
~/.wine-xxx/drive_c/windows/system32/(32 位)或syswow64/(64 位前缀里的 32 位 DLL)
容易被忽略的一点:有些程序需要特定字体(如中文界面崩成方块),不是 DLL 问题,而是
~/.wine-xxx/drive_c/windows/Fonts/下没放simsun.ttc或msyh.ttc——复制进去再重启程序,界面立即正常。











