如何在 Debian 12 上为 WinApps 安装 FreeRDP 3 依赖?
【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
WinApps 通过 FreeRDP 把 Windows 应用渲染到 Linux 桌面,因此它的安装脚本要求主机上已安装 FreeRDP 3 或更高版本(见 README.md),否则安装会在依赖检查阶段终止。本文只覆盖 Debian 12(bookworm)上“安装 FreeRDP 3 依赖”这一步:启用所需仓库、安装依赖包,并给出两种文档明确给出的验证方式,确认 FreeRDP 就绪后即可继续后续安装步骤。
准备条件
- 主机为 Debian 12(bookworm),操作时可以使用
sudo。 - 按 README.md 的说法,WinApps 要求 FreeRDP 主版本 3 或更高,且“the newer, the better”。
- WinApps 安装流程的顺序是:创建 Windows 虚拟机 → 安装依赖 → 创建配置文件 → 测试 FreeRDP → 运行安装器。本文对应其中的“安装依赖”,不包含虚拟机创建(Docker/Podman 见 docs/docker.md,libvirt 见 docs/libvirt.md)。
先启用 backports 仓库(Debian 12 专属要求)
README 对 Debian 12 有一条专门说明:在 Debian 12("bookworm")上,必须先启用backports仓库,freerdp3-x11包才能被安装(README 指向 Debian 官方 backports 说明)。请按 Debian 官方说明启用 backports,然后更新软件包索引,使apt能够检索到freerdp3-x11。
安装依赖包
README.md 的 Step 2 给出了 Debian/Ubuntu 的完整依赖命令:
sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd其中freerdp3-x11是 FreeRDP 3 本体,其余包(curl、dialog、git、iproute2、libnotify-bin、netcat-openbsd)同样是安装脚本必需项。安装脚本 setup.sh 在启动时会逐项检查git、curl、dialog、notify-send(libnotify)、nc(netcat)以及 FreeRDP 3,缺任何一项都会报错退出,所以建议按文档给出的整条命令安装,而不是只装 FreeRDP。
验证一:确认安装脚本能识别到 FreeRDP 3
setup.sh 中 FreeRDP 的检查逻辑是固定的:
- 依次探测
xfreerdp、xfreerdp3,以及 Flatpak 应用com.freerdp.FreeRDP; - 对找到的命令执行
--version,从首行提取主版本号; - 主版本号必须
>= 3才算通过。
如果 FreeRDP 3 未被识别,脚本会输出ERROR: MISSING DEPENDENCIES,并提示Please install 'FreeRDP' version 3 to proceed.,同时为 Debian/Ubuntu 系系统给出建议命令sudo apt install freerdp3-x11(见 setup.sh)。因此这一步的判读标准是:运行 WinApps 安装器后,依赖检查不再报 FreeRDP 缺失。若仍报错,说明 backports 未生效或freerdp3-x11未装上,回到上一节检查。
另外注意:FreeRDP 命令名可能因系统而异(例如xfreerdp或xfreerdp3)。如果你的系统上命令名不在这两个之内,可以在 WinApps 配置文件的FREERDP_COMMAND项中显式指定正确命令(README “Configuration Options Explained” 一节)。
验证二:用 RDP 连接测试确认 FreeRDP 可用(需 Windows 虚拟机已开机)
README 的 Step 4 给出了最直接的验证方式:直接用 FreeRDP 连接 Windows。把下面命令中/u:、/p:、/v:的值替换为~/.config/winapps/winapps.conf中实际配置的账号、密码与地址:
xfreerdp3 /u:"MyWindowsUser" /p:"MyWindowsPassword" /v:127.0.0.1:3389 /cert:tofu # Or, if you are using Podman podman unshare --rootless-netns xfreerdp3 /u:"MyWindowsUser" /p:"MyWindowsPassword" /v:127.0.0.1:3389 /cert:tofu # Or, if you installed FreeRDP using Flatpak flatpak run --command=xfreerdp com.freerdp.FreeRDP /u:"MyWindowsUser" /p:"MyWindowsPassword" /v:127.0.0.1:3389 /cert:tofu成功判据来自文档:Windows 桌面在 FreeRDP 窗口中显示出来,即配置成功、RDP TLS 证书已在 Linux 主机上登记;若终端提示证书确认,选择永久接受。
如果终端出现类似WARNING: CERTIFICATE NAME MISMATCH!、WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!的输出(以下为文档示例),则是旧的 RDP TLS 证书干扰了连接:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: CERTIFICATE NAME MISMATCH! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ The hostname used for this connection (192.168.122.2:3389) does not match the name given in the certificate: Common Name (CN): RDPWindows ...处理方法:删除~/.config/freerdp/server/下对应的旧证书,命名格式为<Windows-VM-IPv4-Address>_<RDP-Port>.pem(例如127.0.0.1_3389.pem),然后重试连接。若你还用 FreeRDP 连接其他机器,只删除与当前 Windows 虚拟机相关的证书;找不到相关证书则无需操作。
可选分支:发行版源里没有 FreeRDP 3 时
按 README 的说明,如果发行版源中拿不到 FreeRDP 3,可以按 FreeRDP 官方编译指南从源码编译,或改用 Homebrew、Nix 等第三方包管理器获取。Flatpak(Flathub 的com.freerdp.FreeRDP)也可行,但 README 明确表示不推荐,因为可能引发沙箱相关问题;如果选择 Flatpak,需要额外执行一次:
sudo flatpak override --filesystem=home com.freerdp.FreeRDP该命令放开 Flatpak 内 FreeRDP 对home目录的访问,是+home-drive挂载生效的前提。
接下来
依赖就绪并通过验证后,按 README.md 继续 Step 3 与 Step 5:创建~/.config/winapps/winapps.conf(设置RDP_USER、RDP_PASS、RDP_IP、WAFLAVOR等,其中RDP_USER/RDP_PASS必须是完整的 Windows 账户与密码,且配置完成后按文档建议收紧文件权限),最后运行 WinApps 安装器完成应用扫描与安装。
【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考