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
相关推荐
晨非辰2 小时前
Git版本控制速成:提交三板斧/日志透视/远程同步15分钟精通,掌握历史回溯与多人协作安全模型
linux·运维·服务器·c++·人工智能·git·后端
gdizcm2 小时前
linux判断文件类型的多种方法
linux·c++
云栖梦泽2 小时前
Linux内核与驱动:3.驱动模块传参,内核模块符号导出
linux·服务器·c++
程序猿编码2 小时前
网络数据包环形缓存捕获技术:原理、设计与实现(C/C++代码实现)
linux·c语言·网络·tcp/ip·缓存
默|笙2 小时前
【Linux】进程信号(4)_信号捕捉_内核态与用户态
linux·运维·服务器
Roc-xb2 小时前
Windows MySQL 密码忘记了如何重置密码?
windows·mysql
supersolon2 小时前
PVE9安装32位爱快路由(ikuai)
linux·运维·网络
123过去2 小时前
mfterm使用教程
linux·网络·测试工具·安全
123过去2 小时前
nfc-mfclassic使用教程
linux·网络·测试工具·安全