WinPodX 是一个在 Linux 上运行 Windows 应用的创新工具,它将 Windows 系统以容器的方式在后台运行,并通过 FreeRDP 将单个应用窗口“投射”到你的 Linux 桌面上,使其看起来和原生应用一样。本教程将指导你在 Linux 系统上完成 WinPodX 的部署。

核心概念与工作原理

理解 WinPodX 的工作方式有助于后续的部署和问题排查。

  • 核心机制:WinPodX 本质上是在后台运行一个轻量级的 Windows 虚拟机(通过 Podman 或 Docker 管理),然后使用 FreeRDP 的 RemoteApp 功能,将指定的 Windows 应用程序窗口单独提取出来,无缝地显示在你的 Linux 桌面上。
  • 关键组件
    • 容器运行时:默认使用 Podman,也支持 Docker。它负责管理和运行 Windows 容器。
    • FreeRDP:一个开源的远程桌面协议(RDP)客户端,负责实现应用窗口的投射和交互。
    • dockur/windows:一个在容器中运行 Windows 的开源项目,WinPodX 基于它构建。
  • 主要优势:每个 Windows 应用都有独立的 Linux 窗口、任务栏图标和文件关联,支持剪贴板、音频、打印机共享,以及双向文件关联(例如在 Linux 文件管理器中双击 .docx 文件可直接用 Word 打开)。

准备工作:系统要求与依赖

在开始安装前,请确保你的系统满足以下硬性要求,否则 Windows 容器将无法启动。

  • 硬件要求
    • CPU:支持 Intel VT-xAMD-V 虚拟化技术,且已在 BIOS/UEFI 中启用。
    • 内存:建议 8 GB 以上,推荐 12-16 GB。Windows 容器本身需要至少 4 GB 内存,还需为 Linux 系统留有余量。
    • 存储:至少 50 GB 可用空间,推荐 64 GB 以上,用于存放 Windows 磁盘镜像和 ISO 文件。
  • 软件依赖
    • KVM:Linux 内核模块,必须已加载。可通过 lsmod | grep kvm 检查。
    • 用户权限:你的登录用户必须属于 kvm 用户组。可通过 id -nG | grep kvm 检查。
    • 容器运行时:系统需安装 Podman (≥ 4.0)Docker。对于 rootless Podman,还需确保 /etc/subuid/etc/subgid 文件配置正确。

第一步:安装 WinPodX

WinPodX 提供了多种安装方式,你可以根据你的 Linux 发行版选择最合适的一种。所有方式的核心程序都相同,选择最方便的一种即可。

方式一:通用安装脚本 (推荐)

这是最快捷的方式,适用于所有发行版。脚本会自动检测系统、安装依赖并完成部署。

1
2
# 下载并运行安装脚本 (默认安装最新稳定版)
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bash

如果你想尝试最新的开发版(可能不稳定),可以使用:

1
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bash -s -- --main

方式二:原生包管理器 (特定发行版)

WinPodX 为许多主流发行版提供了官方仓库或包,可以更好地与系统集成。

  • openSUSE (Tumbleweed/Leap/Slowroll)

    1
    2
    sudo zypper addrepo https://download.opensuse.org/repositories/home:/Kernalix7/openSUSE_Tumbleweed/home:Kernalix7.repo
    sudo zypper install winpodx
  • Fedora (42/43/44)

    1
    2
    sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:/Kernalix7/Fedora_43/home:Kernalix7.repo
    sudo dnf install winpodx
  • Debian/Ubuntu

    1
    2
    # 从 GitHub Releases 下载对应的 .deb 包,例如:
    sudo apt install ./winpodx_<版本号>_all_debian13.deb
  • Arch Linux

    1
    2
    # 通过 AUR 助手 (如 yay) 安装
    yay -S winpodx

方式三:AppImage (通用)

如果以上方式都不适用,可以使用 AppImage。这是一个独立的可执行文件,无需安装,下载后即可运行。

1
2
3
4
5
# 1. 从 GitHub Releases 下载 winpodx-x86_64.AppImage
# 2. 赋予执行权限
chmod +x winpodx-x86_64.AppImage
# 3. 运行设置 (见下文)
./winpodx-x86_64.AppImage setup

第二步:首次运行与设置

重要:如果你是通过方式一(安装脚本) 安装的,setup 步骤通常已自动运行,可以跳过此步,直接进入下一步。但如果通过其他方式安装,必须手动执行。

winpodx setup 命令会执行以下关键任务:

  • 检查并确认 KVM、容器运行时、FreeRDP 等依赖是否满足。
  • 创建配置文件 (~/.config/winpodx/winpodx.toml)。
  • dockur/windows 拉取必要的容器镜像。
  • 下载并配置 Windows 系统(首次会下载 ISO,耗时较长)。
1
2
3
4
5
# 自动设置,使用默认配置
winpodx setup

# 交互式设置,可以自定义后端、CPU核心数、内存、Windows版本等
winpodx setup --customize

如果 setup 命令提示缺少依赖(如 xfreerdp3podman 等),请根据终端输出的提示,使用你的包管理器进行安装,然后重新运行 winpodx setup

第三步:启动与使用

设置完成后,WinPodX 的后台 Windows 环境就已准备就绪。你可以通过以下方式启动应用。

  • 通过应用菜单启动:WinPodX 会自动为 Windows 中的应用程序创建 .desktop 文件。你可以在 Linux 系统的应用菜单中找到它们,像启动普通 Linux 应用一样点击图标即可

  • 通过终端命令启动

    1
    2
    3
    4
    5
    6
    7
    8
    # 启动 Microsoft Word (如果已安装)
    winpodx app run word

    # 用 Word 打开一个特定文档
    winpodx app run word ~/doc.docx

    # 启动完整的 Windows 桌面环境 (用于安装新软件或系统配置)
    winpodx app run desktop
  • 通过应用启动器启动winpodx launch 命令会打开一个可搜索的应用选择窗口,方便你快速找到并启动应用。

  • 通过图形界面 (GUI) 管理winpodx gui 命令会打开一个设置和管理界面,可以在此查看容器状态、管理应用、调整配置等。

后续管理与故障排查

  • 查看状态与诊断:如果遇到问题,winpodx doctor 命令是最佳帮手。它会全面检查主机环境、容器状态和 RDP 连接,并给出修复建议。

    1
    winpodx doctor
  • 管理 Windows 容器

    • 手动启动容器winpodx pod start
    • 手动暂停容器winpodx pod stop (容器空闲时会自动暂停)
    • 查看实时日志winpodx pod wait-ready --logs (尤其在首次启动或排错时很有用)
  • 更新 WinPodX

    • 脚本安装:重新运行安装脚本即可原位升级,配置和虚拟机数据会保留。
    • 包管理器安装:通过系统的包管理器更新(如 sudo apt update && sudo apt upgrade)。
    • AppImage:下载新版本的 AppImage 并替换旧文件。

总的来说,WinPodX 为在 Linux 上运行 Windows 软件提供了一种优雅且集成度高的解决方案。它尤其适合那些依赖特定 Windows 办公或生产软件,但又希望保持 Linux 作为主要操作系统的用户。请注意,该项目目前处于 Beta 阶段,且需要有效的 Windows 许可证(WinPodX 本身不提供)。希望本教程能帮助你顺利开始使用 WinPodX。