Wine & Ubuntu 调用 Windows 应用

Wine介绍

Wine 是一个允许在 Unix 上运行 Microsoft Windows 程序 (包括 DOS、Windows 3.x、Win32 和 Win64 可执行文件) 的程序。它包含一个程序加载程序,用于加载和执行 Microsoft Windows 二进制文件,以及一个名为 Winelib 的库,该库使用其 Unix、X11 或 Mac 等价物实现 Windows API 调用。该库还可用于将 Windows 代码移植到本地 Unix 可执行文件中。

官方库: WineHQ 官方仓库

安装

在 Wine 11 中,官方已经全面完成了全新的 WoW64 架构。新版 Wine 已经可以在纯 64 位的 Linux 环境中,极其平滑地直接运行 32 位甚至 16 位的 Windows 程序,从技术底层上摆脱了对 Linux 32 位运行库的依赖,但低版本需手动配置。

环境准备

bash 复制代码
# 更新下系统
sudo apt update && sudo apt upgrade -y

# 激活 32 位架构支持
sudo dpkg --add-architecture i386


#添加 WineHQ 官方仓库

# WineHQ 的 GPG 密钥,确保软件包的安全性

curl -fsSL https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /usr/share/keyrings/winehq.gpg

# 创建仓库配置文件

cat <<EOF | sudo tee /etc/apt/sources.list.d/winehq.sources
Types: deb
URIs: https://dl.winehq.org/wine-builds/ubuntu
Suites: $(lsb_release -cs)
Components: main
Architectures: amd64 i386
Signed-By: /usr/share/keyrings/winehq.gpg
EOF

# 验证 APT 包管理器是否成功识别到了 WineHQ 仓库
# 这里可以看到Ubuntu 系统能适配的wine 版本列表

apt-cache policy winehq-stable

正式安装wine

bash 复制代码
# 更新软件包列表

sudo apt update

# 安装 Wine 11 稳定版

#winehq-stable	稳定版	经过充分测试,运行最为可靠,适合绝大多数追求日常稳定使用的普通用户。
#winehq-staging	预发布版	功能尝鲜,包含一些尚未合并到主线的实验性补丁,稳定性介于稳定版与开发版之间。
#winehq-devel	开发版	包含了最新功能,但可能存在不稳定的情况,适合开发者或极客玩家。

sudo apt install --install-recommends winehq-stable

# 安装后检查 能正常输出版本
wine --version

初始化 Wine 环境

需要运行「配置工具」来初始化 Wine 环境。这一步会自动生成必要的目录结构,并下载 Mono 等额外组件(Wine 依赖这些组件来运行 .NET 应用程序)

bash 复制代码
winecfg

会弹出图形界面提示 ,安装 wine-mono 相关依赖

环境初始化好后会自动弹出 Wine 设置 面板。你可以在这里选择要模拟的 Windows 系统版本

Winetricks 优化体验

Winetricks 是一个极为实用的辅助脚本,它能帮你一键安装各类 Windows 运行库、核心组件以及字体,大幅提升 Wine 的开箱体验和软件兼容性

bash 复制代码
# 安装 
sudo apt install winetricks

# 通过 Winetricks 轻松搞定各种缺失的 Windows 组件 例如

winetricks vcrun2022 # 安装 Visual C++ 运行库
winetricks allfonts corefonts cjkfonts # 安装常用字体(解决中文乱码)
winetricks d3dx9 d3dx10 # 安装 DirectX,提升兼容性与游戏性能

Wine 环境管理

Wine 采用「前缀」(Prefix)机制来隔离不同的应用程序环境,相当于一个个独立的沙盒容器。默认情况下,主环境路径位于~/.wine

bash 复制代码
#为某个应用独立运行环境  

WINEPREFIX=~/.custom_wine_prefix winecfg

# 建立一个全新的 Wine 环境,并自动唤出 Wine 设置 面板

注:如果exe是多实例运行,建议采用前缀管理,否则 它们对应的win-server 是同一个,只有全部退出时才能真正退出

  • 在 Wine 11.x 中,默认的 64 位容器已经能完美兼容 32 位应用了。官方已正式弃用WINEARCH=win32的纯 32 位前缀创建方式。
  • 如果有特殊的兼容性需求,可以设置WINEARCH=wow64来强制旧版容器以新的 WoW64 模式运行

中文乱码处理

bash 复制代码
# 启动或配置环境时加上LC_ALL=zh_CN.UTF-8环境变量,来强制声明中文支持

WINEPREFIX=~/wine_prefix LC_ALL=zh_CN.UTF-8 winecfg

卸载

bash 复制代码
# 简单卸载
sudo apt remove winehq-stable # 卸载稳定版
sudo apt remove winehq-staging # 卸载预发布版
sudo apt remove winehq-devel # 卸载开发版




#深度卸载
# 1. 卸载所有 Wine 相关包
sudo apt remove --purge wine* winetricks*  
# 2. 清除残留的配置文件(核心步骤!)
rm -rf ~/.wine ~/.cache/wine ~/.local/share/wine  
# 3. 自动清理无用依赖
sudo apt autoremove  
# 4. 确认卸载完成(无输出则说明已清理干净)
wine --version  


# 5. 移除软件源配置

sudo rm /etc/apt/sources.list.d/winehq.sources

# 6. 清理导入的密钥

sudo rm /etc/apt/sources.list.d/winehq.sources
相关推荐
bugu___20 小时前
Linux系统、网络知识点回顾1
linux·网络
keyipatience1 天前
7.Linux1权限-开发工具
linux
j_xxx404_1 天前
万字长文爆肝:彻底弄懂Linux文件系统(Ext2),从Inode、Block到Dentry核心机制全解析
linux·运维·服务器
2401_841495641 天前
Linux C++ TCP 服务端经典的监听骨架
linux·网络·c++·网络编程·ip·tcp·服务端
楼田莉子1 天前
同步/异步日志系统:日志器管理器模块\全局接口\性能测试
linux·服务器·开发语言·c++·后端·设计模式
dyxal1 天前
内网 Windows 离线安装 uv:极速 Python 包管理器的部署实战
windows·python·uv
奇妙之二进制1 天前
zmq源码分析之io_thread_t
linux·服务器
stone08231 天前
如何解决Windows硬盘变成了空白
windows
cui_ruicheng1 天前
Linux IO入门(三):手写一个简易的 mystdio 库
linux·运维·服务器
telllong1 天前
MCP协议实战:30分钟给Claude接上你公司的内部API
linux·运维·服务器