Wine 的安装与管理

提到 Wine 的安装,很多人会直接安装发行版提供的版本,或者添加 Wine 官网提供的软件源,再用包管理器安装。但是,有些程序和游戏需要给 Wine 加上社区提供的补丁才能运行。因此,我推荐的方案是,装好驱动程序和依赖,使用 wine-tkg 构建 Wine,或下载 Wine-GE,手动管理 Wine 版本。

驱动与依赖安装

参照 Lutris 的两篇文档:

我使用的发行版是 Linux Mint 21.1,显卡是 AMD 的核显,相关命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo dpkg --add-architecture i386
sudo apt update
sudo apt upgrade
sudo apt install libgl1-mesa-dri:i386 \
mesa-vulkan-drivers \
mesa-vulkan-drivers:i386 \
wine64 \
wine32 \
libasound2-plugins:i386 \
libsdl2-2.0-0:i386 \
libdbus-1-3:i386 \
libsqlite3-0:i386

Wine-tkg

Wine-tkg 是一套构建系统,可以方便地编译满足自己需求的 wine。Wine-tkg 包含大量补丁与选项以供定制。

编译 wine 需要安装大量的 32 位和 64 位的依赖。为避免破坏系统1,最好在容器中进行编译。

我使用的发行版 Linux Mint 21.1 是基于 Ubuntu 22.04 LTS 的,所以首先运行一个 Ubuntu 容器:

1
docker run -it ubuntu:jammy

进入容器后,安装必要的工具和编辑器,开启 32 位支持,下载 wine-tkg:

1
2
3
4
5
6
dpkg --add-architecture i386
apt update
apt upgrade
apt install git vim
git clone https://github.com/Frogging-Family/wine-tkg-git.git
cd wine-tkg-git/wine-tkg-git/

进入 wine-tkg-git 目录后,可以修改 customization.cfg。将 _nomakepkg_dep_resolution_distro 的值改为 "debuntu",这样 wine-tkg 就可以自动安装编译 Wine 需要的依赖了。这时也可以进行一些其它的修改。保存退出后,运行 non-makepkg-build.sh,按照提示操作。

如果在编译过程中遇到问题,可以看 prepare.log 日志,尝试自己排查错误。如果无法解决问题,建议直接去提 issue。

编译生成的文件在 non-makepkg-builds 目录下,用 docker cp 命令将其复制出来,即可使用。

Wine-GE

Wine-GE 是 GloriousEggroll 构建的 wine,用于 Steam 之外的游戏(玩 Steam 的游戏可以用他的 Proton-GE)。

与 wine-tkg 不同,Wine-GE 提供编译好的二进制,直接从 GitHub Release 下载即可。

使用 Wine

运行 Wine 时指定路径,即可使用自己安装的 Wine。如:

1
WINEPREFIX=/home/zhao/Documents/yuri/ ~/opt/lutris-GE-Proton7-35-x86_64/bin/wine YURI.exe

注意 winecfg 命令与对应的 wine 在同一目录下。

如果使用 Winetricks,需要添加 WINE 环境变量,以指定 Wine 的路径。如:

1
WINEPREFIX=/home/zhao/Documents/yuri/ WINE=~/opt/lutris-GE-Proton7-35-x86_64/bin/wine winetricks