# 13.5.配置 WINE 安装程序

## 13.5.1. WINE 前缀

WINE *前缀*是个目录，通常位于默认位置 $HOME/.wine 下面，但它也可以位于其他地方。前缀是 WINE 用来配置和运行 Windows® 环境所需的应用程序的配置文件和支持文件的集合。默认情况下，首次启动 WINE 时，会创建以下结构：

* **.update-timestamp**: 包含文件 /usr/share/wine/wine.inf 的最后修改日期。WINE 用它来判断一个前缀是否过时，并在需要时自动更新。
* **dosdevices/**: 包含 Windows® 资源与主机 FreeBSD 系统资源的映射信息。例如，在新安装 WINE 后，这里至少包含两个条目，用于通过 Windows® 风格的驱动器字母访问 FreeBSD 文件系统：
  * **c:@**: 指向下文所述的 drive\_c。
  * **z:@**: 指向系统的根目录。
* **drive\_c/**: 模拟 Windows® 系统的主（即 C:）驱动器。它包含一个目录结构和与标准 Windows® 系统相对应的文件。一个新的 WINE 前缀将包含 Windows® 10 目录，如 *Users* 和 *Windows*，这些目录存储操作系统本身。此外，安装在前缀中的应用程序将位于 *Program Files* 或 *Program Files (x86)* 目录下，具体取决于应用程序的架构。
* **system.reg**: 这个注册表文件包含有关 Windows® 安装的信息，在 WINE 中，它对应于 drive\_c 中的环境。
* **user.reg**: 这个注册表文件包含当前用户的个人配置，这些配置可能由不同的软件或通过使用注册表编辑器进行修改。
* **userdef.reg**: 这个注册表文件包含为新创建的用户设置的默认配置。

## 13.5.2. 创建和使用 WINE 前缀

虽然 WINE 会在用户的 $HOME/.wine/ 目录下创建一个默认前缀，但也可以设置多个前缀。这样做有几个原因：

* 最常见的原因是模拟不同版本的 Windows®，以便根据软件的兼容性需求进行配置。
* 此外，常常会遇到在默认环境中无法正确工作的应用程序，这时需要特殊的配置。将这些软件隔离在各自的定制前缀中非常有用，这样就不会影响其他应用程序。
* 类似地，通过将默认或“主”前缀复制到一个单独的“测试”前缀中，以便评估应用程序的兼容性，可以减少损坏的风险。

从终端创建一个前缀需要以下命令：

```sh
% WINEPREFIX="/home/username/.wine-new" winecfg
```

这将运行 `winecfg` 程序，该程序用于配置 WINE 前缀（稍后将详细介绍）。但是，通过为 `WINEPREFIX` 环境变量提供一个目录路径值，如果该位置尚不存在前缀，它将创建一个新的前缀。

将相同的变量传递给 wine 程序，也会导致所选程序在指定的前缀下运行：

```sh
% WINEPREFIX="/home/username/.wine-new" wine program.exe
```

## 13.5.3. 使用 `winecfg` 配置 WINE 前缀

如上所述，WINE 包含一个名为 `winecfg` 的工具，通过图形界面配置前缀。它包含多种功能，下面将详细描述。运行 `winecfg` 时，如果指定了前缀的位置（通过 `WINEPREFIX` 环境变量），则可以配置所选前缀。

在 *Applications* 选项卡中所做的选择会影响 *Libraries* 和 *Graphics* 选项卡中所做的更改，这些更改仅限于所选应用程序。更多详情，请参阅 WINE Wiki 中的 [使用 Winecfg](https://wiki.winehq.org/Wine_User's_Guide#Using_Winecfg) 章节。

### 13.5.3.1. 应用程序（Applications）

![wine config 1](https://docs.freebsd.org/images/books/handbook/wine/wine-config-1.png)

*Applications* 选项卡包含使程序与特定版本的 Windows® 关联的控件。首次启动时，*Application settings* 部分会包含一个条目：*Default Settings*，该条目对应前缀的所有默认配置（如禁用的 *Remove application* 按钮所示，这个条目无法删除）。

但可以通过以下过程添加其他应用程序：

1. 点击 *Add application* 按钮。
2. 使用提供的对话框选择所需程序的可执行文件。
3. 选择与所选程序关联的 Windows® 版本。

### 13.5.3.2. 库（Libraries）

![wine config 2](https://docs.freebsd.org/images/books/handbook/wine/wine-config-2.png)

WINE 提供了一组开源库文件，作为其分发的一部分，提供与 Windows® 对应库相同的功能。然而，如本章早些时候提到的，WINE 项目始终在努力跟进这些库的更新。因此，WINE 中随附的版本可能缺少最新 Windows® 程序所期待的功能。

不过，`winecfg` 使得可以为内置库指定替代版本，特别是当同一台机器上有与主机 FreeBSD 安装兼容的 Windows® 版本时。对于每个要替代的库，按照以下步骤操作：

1. 打开 *New override for library* 下拉菜单并选择要替代的库。
2. 点击 *Add* 按钮。
3. 新的替代项会出现在 *Existing overrides* 列表中，注意括号中的 *native, builtin* 标记。
4. 点击选择该库。
5. 点击 *Edit* 按钮。
6. 使用提供的对话框选择相应的库来替代内置库。

确保选择的文件是真正对应内置库的版本，否则可能会导致意外的行为。

### 13.5.3.3. 图形（Graphics）

![wine config 3](https://docs.freebsd.org/images/books/handbook/wine/wine-config-3.png)

*Graphics* 选项卡提供了一些选项，以确保通过 WINE 运行的程序窗口能够顺利与 FreeBSD 协同工作：

* 全屏时自动捕捉鼠标。
* 允许 FreeBSD 窗口管理器装饰窗口，如为程序窗口添加标题栏。
* 允许窗口管理器控制通过 WINE 运行的窗口，例如对其进行调整大小。
* 创建一个模拟虚拟桌面，在此桌面上运行所有 WINE 程序。如果选择了此项，可以使用 *Desktop size* 输入框指定虚拟桌面的大小。
* 设置通过 WINE 运行的程序的屏幕分辨率。

### 13.5.3.4. 桌面集成（Desktop Integration）

![wine config 4](https://docs.freebsd.org/images/books/handbook/wine/wine-config-4.png)

此选项卡允许配置以下项：

* 用于通过 WINE 运行的程序的主题和相关视觉设置。
* 是否由 WINE 子系统内部管理 MIME 类型（用于确定哪个应用程序打开特定的文件类型）。
* 将主机 FreeBSD 系统中的目录映射到 Windows® 环境中的有用文件夹。要更改现有关联，选择所需项并点击 *Browse*，然后使用提供的对话框选择一个目录。

### 13.5.3.5. 驱动器（Drives）

![wine config 5](https://docs.freebsd.org/images/books/handbook/wine/wine-config-5.png)

*Drives* 选项卡允许将主机 FreeBSD 系统中的目录链接到 Windows® 环境中的驱动器字母。此选项卡中的默认值应该很熟悉，因为它们显示的是当前 WINE 前缀中 dosdevices/ 的内容。通过此对话框所做的更改会反映在 dosdevices 中，并且在该目录中创建的格式正确的链接将显示在此选项卡中。

要创建一个新的条目，例如为 CD-ROM（挂载在 /mnt/cdrom）创建一个驱动器，按照以下步骤操作：

1. 点击 *Add* 按钮。
2. 在提供的对话框中，选择一个空闲的驱动器字母。
3. 点击 *OK*。
4. 在 *Path* 输入框中填写资源的路径，或点击 *Browse* 并使用提供的对话框选择路径。

默认情况下，WINE 会自动检测链接的资源类型，但可以手动覆盖此设置。有关高级选项，请参阅 [WINE Wiki 中的章节](https://wiki.winehq.org/Wine_User's_Guide#Drive_Settings)。

### 13.5.3.6. 音频（Audio）

![wine config 6](https://docs.freebsd.org/images/books/handbook/wine/wine-config-6.png)

此选项卡包含一些可配置选项，用于将 Windows® 程序的声音路由到本地 FreeBSD 音频系统，包括：

* 驱动程序选择
* 默认设备选择
* 声音测试

### 13.5.3.7. 关于（About）

![wine config 7](https://docs.freebsd.org/images/books/handbook/wine/wine-config-7.png)

最后一个选项卡包含关于 WINE 项目的信息，包括指向官方网站的链接。它还允许输入（完全可选的）用户信息，尽管这些信息并不会像在其他操作系统中那样发送到任何地方。
