OFFSET偏移
← 文章目录OFFSET / FIELD NOTESNO. 153

Wine、Proton 与 Bottles 的关系

用技术谱系、分层模型和场景矩阵判断兼容引擎与管理器的职责。

所在专题Wine 与应用环境 ↗
约 9 分钟阅读开始阅读

理解 Wine、Proton、Bottles 的边界与协作关系,为不同场景做出正确选择。


技术谱系:演化全景#

graph TD
    subgraph "上游 (1993-)"
        WINE["Wine — Windows API 兼容层"]
    end
    subgraph "商业版"
        CX["CrossOver — CodeWeavers 商业支持"]
    end
    subgraph "游戏分支 (2018-)"
        PROTON["Proton — Valve Steam Play"]
        PROTON_GE["Proton-GE — 社区增强版"]
        PROTON_CACHY["Proton-CachyOS — CPU 优化构建"]
    end
    subgraph "管理层"
        BOTTLES["Bottles — GUI 前缀管理"]
        LUTRIS["Lutris — 游戏启动器 + 社区脚本"]
    end
    subgraph "组件层"
        DXVK["DXVK"]
        VKD3D["VKD3D-Proton"]
    end

    WINE --> CX
    WINE --> PROTON
    PROTON --> PROTON_GE
    PROTON --> PROTON_CACHY
    WINE -.->|Runner 调用| BOTTLES
    PROTON_GE -.->|需核对 umu 集成| BOTTLES
    PROTON -.->|集成| DXVK
    PROTON -.->|集成| VKD3D
    PROTON_GE -.->|受支持的 umu 后端| LUTRIS
    WINE -.->|Runner 调用| LUTRIS

关键认知:

  1. Wine 是核心兼容引擎上游之一。Proton 同时集成 DXVK、VKD3D-Proton、运行时、媒体与其他项目;不能把整个 Proton 的每一行代码都追溯为 Wine。部分改进可回到上游,但需按具体提交核对。
  2. Proton 是面向 Steam 游戏生态的 Wine 集成与补丁集合,包含专用运行环境。非游戏程序可能可运行,但不是其主要支持目标。Proton 的补丁可能引入非游戏应用的兼容性 bug。
  3. Proton-GE/CachyOS 是社区维护的不同构建与补丁组合,所含 DXVK/VKD3D、硬件适配和游戏修复取决于具体 release;不能绕过游戏反作弊策略,但不为稳定运行 Office/Photoshop 设计。
  4. Bottles 和 Lutris 是管理器,不参与 API 翻译,只是封装命令行接口。

引擎与管理器的三层模型#

┌──────────────────────────────────────┐
│        管理层 (Bottles / Lutris)       │  ← 用户交互、配置可视化、快照
│   ┌────────────────────────────────┐  │
│   │   运行器层 (Wine / Proton-GE)    │  │  ← API 翻译、进程管理
│   │  ┌──────────────────────────┐  │  │
│   │  │  图形层 (DXVK / VKD3D)   │  │  │  ← DirectX → Vulkan 翻译
│   │  └──────────────────────────┘  │  │
│   └────────────────────────────────┘  │
│          操作系统 (Linux Kernel)        │
└──────────────────────────────────────┘

类比

角色 比喻
Wine 通用发动机 — 能跑各种车,需自行调校
Proton 赛车发动机 — 为速度(帧率)设计,其他场景未必好用
Bottles 整车 — 发动机装好,给你方向盘和仪表盘

场景选择矩阵#

按用途选工具

使用场景 推荐引擎 推荐管理方式 说明
Steam 游戏(库内) Proton / Proton-GE Steam 内置 Steam 管理运行环境与每游戏兼容数据;仍可能需要游戏专项配置
非 Steam 游戏 (.exe) 支持该游戏的 Wine runner 或 GE-Proton Wine 管理器;GE 走 umu 集成 分离配置不等于安全隔离
办公软件 (Office 等) 已验证的 Wine runner Bottles 需要 .NET/VC Runtime 完整依赖链
设计软件 (Photoshop) 已验证的 Wine runner Bottles 每软件独立 Bottle,避免 DLL 冲突
老旧 Windows 工具 兼容目标应用的架构与 Wine runner Bottles 32 位程序未必要求纯 win32 Prefix;按 WoW64/构建与依赖核对
游戏模组 (ReShade 等) 与模组兼容的 Wine/Proton 版本 Bottles / Steam 核对 DLL 优先级、游戏版本与模组要求,不依赖未经核验的版本承诺
开发测试 (CI/CD) Wine (nix 管理) 命令行 无 GUI 环境,需脚本化

决策流程图

graph TD
    A{"这是一个游戏吗?"} -->|是| B{"在 Steam 库里吗?"}
    A -->|否| C["用 已验证的 Wine runner — 通过 Bottles 管理"]
    B -->|是| D["用官方 Proton — Steam 自动配置"]
    B -->|否| E{"需要特定游戏修复?"}
    E -->|是| F["检查游戏支持,再用 GE-Proton — Steam 外核对 umu 后端"]
    E -->|否| G["用支持目标游戏的 Wine runner — 通过管理器维护"]
    D --> H{"过场动画黑屏?"}
    H -->|是| I["换 Proton-GE"]
    H -->|否| J["保持官方 Proton"]

原则

游戏用 Proton(生态),应用用 Wine(通用性),管理用 Bottles(效率)。


版本与支持范围怎样对照#

不要把稳定版、开发版、社区滚动版与管理器名称放进同一个“最新稳定版”栏。建立版本记录时分别查看:

组件 需要记录的身份 不能由名称直接推断的能力
Wine 发布/开发版本、发行包构建、补丁与架构 新 WoW64、NTSYNC、Wayland 是否在该构建实际可用
官方 Proton Steam 选中的确切版本和 runtime 当前游戏、GPU、媒体、反作弊是否支持
GE-Proton 官方 release、校验来源与下载的附加 DLL 超分、帧生成、特定游戏修复是否生效;Steam 外是否走 umu
Bottles runner 名称、组件 manifest 与具体版本 Soda/Caffe 等当前默认、Wine 基底与补丁范围
DXVK/VKD3D runner 实际携带版本、驱动要求 Vulkan 功能、光追、性能与多 GPU 路径

原材料中的 2025–2026 对照表没有足够发布证据支撑“最新”结论。WineHQ 发布页本次访问受限,具体 Wine 11.x 状态不作确认;官方 Proton 与 GE README 的核对也只说明访问时的项目文档,所选旧 release 仍应读其自身说明。

版本更新会修改前缀或下载新的组件。保留可回退的 runner 和关闭状态前缀备份,按同一应用场景验证;单次成功不能替代长期稳定性或安全支持。

来源与核验边界#

以下参考定义相关机制与支持范围。安装、构建、激活、前缀状态与实际应用行为需要按目标环境分别核验;示例命令没有附带任何主机运行成功的结论。

参考与延伸

  1. Wine 项目 ↗
  2. 官方 Proton README ↗
  3. GE-Proton README ↗
  4. umu-launcher 与运行方法 ↗
  5. Bottles runner 文档 ↗

根据技术笔记重新整理,示例使用通用名称。

沿专题继续阅读

Wine 与应用环境

  1. 01umu、Wine 与 Proton:看懂兼容层,再选 Bottles 运行器
  2. 02Wine、Proton 与 Bottles 的关系
  3. 03Wine:兼容层与前缀
  4. 04Bottles:运行器与应用环境
CONTINUE READING / 下一篇NixOS 中的 Wine 与游戏环境

将锁定的软件、Steam 工具注册、Flatpak 运行时与可变前缀分层管理。