目前 wine 版本为较为稳定的 8.0 版本,本文也是重点围绕 wine 8.0 安装、使用以及 wine 工具介绍等方面进行了学习和整理。
一、安装 wine
1. 如果你使用的是 64 位系统,需要先开启 32 bit 架构支持:
$ sudo dpkg --add-architecture i386
architecture,指的是cpu体系架构,如64位的amd64,arm64。下面是一些关于架构方面的指令:
$ sudo dpkg --print-architecture #查看当前CPU体系架构:
$ sudo dpkg --add-architecture [ amd64 | i368 | arm64 | ...] #开启或者说增加其他架构支持
$ sudo dpkg --print-foreign-architectures #查看开启的其他架构(非当前cpu体系架构)
$ sudo dpkg --remove-architecture [ amd64 | i368 | arm64 | ...] #删除开启的其他架构
i386 = Intel 80386。通常被用来作为对Intel(英特尔)32位微处理器的统称。
amd64,又称“x86-64”或“x64”。是一种64位元的电脑处理器架构。它是建基于现有32位元的x86架构,由AMD公司所开发。
2. 信任来自 https://dl.winehq.org/ 的公钥:
$ sudo mkdir -pm755 /etc/apt/keyrings
$ sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
上面的命令实现了将 https://dl.winehq.org/
的公钥内容保存至 /etc/apt/keyrings/winehq-archive.key
文件。
3.添加仓库(以 ubuntu 22.04 为例):
方法一:添加 winehq 官方仓库(能保证版本为最新,但不能保证下载速度)
$ sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
方法二:从镜像站添加仓库,如清华大学开源镜像站(不能保证版本为最新,但应该能保证下载速度)
清华大学开源镜像站只同步了 ubuntu/debian 部分,因此其他发行版不适用。在 /etc/apt/sources.list.d/
目录中新增一个源列表文件 winehq.list
,内容为
deb [arch=amd64,i386 signed-by=/etc/apt/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ jammy main
4. 更新源列表
$ sudo apt update
5. 安装 wine
$ sudo apt install --install-recommends winehq-stable
这里选择安装的是稳定分支 (winehq-stable),可以根据需要选择开发分支 (winehq-devel) 或Staging 分支 (winehq-staging)
二、wine 的使用
1. 重要的 2 个环境变量
(1) WINEARCH 环境变量
WINEARCH 环境变量指的是容器所模拟的cpu体系架构,对应的值为 win32 及 win64,如果你的系统是 64 位系统,一般默认为 win64。目前 wine 容器在64位系统下其稳定性是远远低于 32 位系统的。
(2) WINEPREFIX 环境变量,容器路径,默认为 ~/.wine
。
WINEPREFIX 环境变量表示容器的路径,默认为 ~/.wine
。wine 会在所指定的容器路径~/.wine
下创建drive_c/
等几个文件(夹),其中包含了Windows环境配置、它的C盘文件等等。建议把不同的 Windows 程序分给不同的 WINEPREFIX,便于打包和隔离。只是当你要启动这个 Windows 程序前也需要设置正确的 WINEPREFIX。
2.wine 配置命令(初次使用必须配置)
$ winecfg
上面的命令使用的是默认的环境变量配置 wine 的配置,它将在你的家目录中创建一个隐藏文件夹(.wine),该文件夹下包含类似于在 Windows 中的虚拟 C:驱动器以及注册表文件。一旦该目录中创建完,wine配置窗口将出现。该窗口将允许您定制wine的各种设置,其中包括Windows版本,DLL替换,显示设置,驱动器映射,以及应用程序的特定设置。单击OK按钮关闭该窗口。
wine 首次初始配置时会要求下载插件 wine-mono(.net 开源方案)和 wine-gecko(ie HTML开源方案) ,但通过初始配置窗口去下载会很慢,可以在初始设置前从网速快的镜像下载并安装
http://mirrors.ustc.edu.cn/wine/wine/wine-mono/
http://mirrors.ustc.edu.cn/wine/wine/wine-gecko/
因为 winecfg
命令使用的环境变量是默认的也就是容器路径为~/.wine
,架构为物理系统的架构,通常是 win64,如果我们想要使用自定义的环境变量,可以使用类似下面的命令:
$ WINEARCH=win32 WINEPREFIX=~/.wine-new winecfg
这条命令配置的容器,其容器路径是 ~/.wine-new
,架构是 win32。
3.安装 Windows 程序
- 从某个地址下载Windows应用程序.exe(可执行文件)
- 把它放在一个方便的目录(例如,桌面或个人文件夹)
- 打开终端,并且切换到.exe文件所在的目录
- 输入命令 wine appname.exe (例如: wine QQ.exe)
这将使用Wine启动.EXE。如果它是一个安装程序,它应该像在windows一样的运行。如果应用程序要求的目录来安装应用程序,选择把它放在 C:\Program Files 。
以 WinRAR 为例安装(为深入理解容器概念,我使用上一步自定义初始化的一个容器路径来进行操作,下同):
(1) 首先去官网下载32位的安装包 winrar-x32-611scp.exe
(2) 打开终端,切换到安装包所在路径,输入如下命令:
$ WINEPREFIX=~/.wine-new wine wine-gecko-2.47.3-x86.msi
$ WINEPREFIX=~/.wine-new wine winrar-x32-611scp.exe
4.运行 Windows 程序
(1) 使用命令直接打开:
$ wine [start] 程序路径/程序名.exe 参数
根据Windows约定,一般程序将默认安装在虚拟Windows驱动器(WINEPREFIX/drive_c)里面Program Files下的某处。
这里的程序路径有 2 种表示方法:
- a.容器内程序的路径(需指定容器路径,否则默认为~/.wine)
$ WINEPREFIX=~/.wine-new wine "c:/Program Files/WinRAR/WinRAR.exe"
- b.物理系统内程序的路径
$ wine ~/.wine-new/drive_c/Program\ Files/WinRAR/WinRAR.exe
(2) 通过 winefile
命令打开 wine 文件管理器,然后定位到所需程序,双击打开。
$ WINEPREFIX=~/.wine-new winefile
(3) 创建桌面快捷方式
在桌面上创建一个"程序名.desktop"的文件,添加可执行权限(chmod +x 程序名.desktop),内容编辑格式大体如下:
[Desktop Entry]
Name=程序名(WinRAR)
Exec=env WINEPREFIX="容器路径(/home/hollowman/.wine-new/)" wine "wine容器内的程序路径(C:\Program Files\WinRAR\WinRAR.exe)"
Type=Application
StartupNotify=true
Path=程序实际路径(/home/hollowman/.wine-new/dosdevices/c:/Program Files/WinRAR)
Icon=桌面图标路径()
StartupWMClass=程序名.exe(WinRAR.exe)
5.有关 wine 的命令
通过dpkg -L winehq-stable | grep bin
可以大概了解wine有哪些二进制命令(这里的 winehq-stable 是我安装的 wine 版本,一般输入 wine 按 tab 补齐就可知道你安装了哪个wine)
$ dpkg -L winehq-stable | grep bin
/usr/bin
/usr/bin/function_grep.pl
/usr/bin/msidb
/usr/bin/msiexec
/usr/bin/notepad
/usr/bin/regedit
/usr/bin/regsvr32
/usr/bin/widl
/usr/bin/wine
/usr/bin/wine-preloader
/usr/bin/wine64
/usr/bin/wine64-preloader
/usr/bin/wineboot
/usr/bin/winebuild
/usr/bin/winecfg
/usr/bin/wineconsole
/usr/bin/winecpp
/usr/bin/winedbg
/usr/bin/winedump
/usr/bin/winefile
/usr/bin/wineg++
/usr/bin/winegcc
/usr/bin/winemaker
/usr/bin/winemine
/usr/bin/winepath
/usr/bin/wineserver
/usr/bin/wmc
/usr/bin/wrc
解释几个命令
$ winecfg #wine配置窗口
$ wine regedit #注册表
$ wine control #控制面板
$ wine notepad #记事本
$ wineconsole #cmd终端窗口
$ winefile #文件管理器
$ wine uninstaller #卸载面板
$ winemine #扫雷游戏
三、wine 的可视化工具
1.winetricks
介绍: 带点官方性质的wine的配置工具。
源码网站: https://github.com/Winetricks/winetricks
如何安装: 可以通过 apt 来安装。
$ sudo apt install winetricks
2.winetricks-zh
介绍: 国人维护的 winetricks 的修改版,添加了一些国内常用的 windows 应用支持,以弥补 winetricks 对国内应用支持不足的情况。
源码网站: https://github.com/hillwoodroc/winetricks-zh
如何安装:
(1) 下载源码,并解压缩
(2) 在该目录下打开终端,输入如下命令
sudo cp winetricks-zh /usr/bin/
sudo cp icon/winetricks-zh.svg /usr/share/icons/hicolor/scalable/apps/
sudo cp winetricks-zh.desktop /usr/share/applications/
如何使用:
$ winetricks-zh #或者直接在应用程序菜单里面点击 winetricks-zh 来启动。
注意,该命令默认的容器路径是~/.wine
,如果希望用其他的默认容器路径,同样需要在命令前面增加设置WINEPREFIX变量的语句 WINEPREFIX=~/.wine-new
3.wine 运行器
由网名为 gfdgd xi、为什么您不喜欢熊出没和阿布呢 制作的一个基于 wine 的可视化工具,他们对这个软件的定位是:
Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
它同时还内置了基于VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作。
此外,它还简化了如下命令,让你可以更简便地使用Wine:env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径
让你可以简易方便的使用 wine。
该程序的官网有:
https://gitee.com/gfdgd-xi/deep-wine-runner
https://github.com/gfdgd-xi/deep-wine-runner
https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner
https://gfdgd-xi.github.io
程序Wiki: http://gfdgdxi.i.racoongx.cn/wine-runner-wiki/
程序界面:
四、如何干净卸载 wine
sudo apt remove wine wine64 wine32 winetricks winetricks-zh
cd ~
rm -rf .wine/
rm -rf .local/share/applications/wine/
cd .local/share/mime/
rm .local/share/mime/types
rm .local/share/mime/globs2
rm .local/share/mime/packages/x-wine-extension-*
rm .local/share/mime/application/x-wine-extension-*
rm -rf .config/menus/applications-merged/ #删除程序图标快捷方式
rm -rf .local/share/wineprefixes/ #删除自己创建的wineprefixes(wine容器)
update-mime-database ~/.local/share/mime #更新文件类型数据库
官方文档参考:
winehq wiki: https://wiki.winehq.org/FAQ
Wine_User’s_Guide: https://wiki.winehq.org/Wine_User’s_Guide