经过多天的测试,终于安装并运行,特感谢藏钥阁公众号,想在银河麒麟V11上运行Windows程序,WinApps确实是个不错的选择,它通过虚拟机管理来运行.exe文件。测试运行环境:银河麒麟桌面操作系统v10sp1 2503/UKUI硬件:intel xeon cpuE5-2689@2.6/32G/KST240G
1.安装与配置Docker
银河麒麟软件源通常提供了Docker,安装非常方便:sudo usermod -aG docker $USERsudo vi /etc/docker/daemon.json"https://docker.mirrors.ustc.edu.cn","https://mirror.baidubce.com","https://hub-mirror.c.163.com","https://docker.m.daocloud.io","https://mirror.aliyuncs.com"sudo systemctl daemon-reloadsudo systemctl restart docker
二、部署windows容器
1、创建项目目录:mkdir -p ~/.config/winapps(隐藏目录)docker/windows项目,采用的是windows 10专业版本,在本地新建个目录用来存放下载windows 10系统包。在当前目录(~/.config/winapps/)下创建 compose.yaml文件,添加内容如下:image: dockurr/windows:latest
虚拟机硬件配置
Windows用户与区域配置
TIMEZONE: "Asia/Shanghai"
系统选项
AUTOMATION_LEVEL: "basic"
noVNC网页控制台端口
RDP远程桌面端口,WinApps连接用
核心:卷与设备映射
1. 系统盘持久化存储 (使用数据卷,便于备份迁移)
2. 【关键】本地ISO安装源挂载- ./yingpan/iso/cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso:/boot.iso:ro
3. 【文件共享】宿主机共享文件夹
4. 【自动化脚本】OEM配置文件夹
- ./oem:/oem:ro devices: - /dev/kvm
KVM虚拟化设备
网络隧道设备
stop_grace_period: 120s restart: unless-stopped
4.启动容器并安装windows 10
如果下载等待时间过长,可以CTRL+C终止,然后在再运行一下。docker-compose -f compose.yaml logs -f当看到日志输出提示系统正在启动时,打开浏览器,访问 http://localhost:8006。你将看到Windows安装界面,因为我们在yaml配置文件中设置了Windows用户与区域配置,docker将按照要求自动完成windows的安装。使用命令激活一下:windows shell 管理员:irm https://get.activated.win | iex
3、关键组件安装与配置
Windows系统安装完成后,保持容器运行。接下来是WinApps正常运行的关键——安装FreeRDP 3.0+。
1. 编译安装 FreeRDP 3.0+(WinApps硬性要求)
银河麒麟官方源通常不提供高版本FreeRDP2.0,必须手动编译。
sudo apt install -y git dialog build-essential cmake pkg-config ninja-build
编译 FreeRDP(或其他图形 / 远程桌面类软件)安装底层依赖库的开发包
kylin@kylin-pc:~$ sudo apt install -y \> libx11-dev libxext-dev libxinerama-dev \> libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev \> libxrandr-dev libxi-dev libxfixes-dev libxtst-dev \> libasound2-dev libcups2-dev libpulse-dev \> libjpeg-dev libturbojpeg0-dev \> libwayland-dev libgbm-dev \> libfaad-dev libfaac-dev编译 FreeRDP(或音视频处理类软件)安装FFmpeg 相关的音视频编解码开发库
sudo apt install -y \
libavcodec-dev \
libavutil-dev \
libavformat-dev \
libswscale-dev \
libswresample-dev
编译 FreeRDP 补充安装外设、系统集成、图形渲染类的依赖开发库
ICU 和 Kerberos
编译 FreeRDP 安装JSON 数据处理类的依赖开发库为大幅提升国内下载速度,我们使用Gitee镜像站获取源码:
1. 下载源码包(指定保存名称为 FreeRDP-master.zip)
wget -O FreeRDP-master.zip
https://gitee.com/mirrors/FreeRDP/repository/archive/master.zip

2. 解压源码包(如果提示 unzip 未安装,先执行 apt install unzip / yum install unzip)
3. 进入解压后的目录
4. 创建构建目录并配置编译选项
mkdir -p build && cd build
kylin@kylin-pc:~/FreeRDP-master/build$ cmake .. \
> -DCMAKE_BUILD_TYPE=Release \> -DCMAKE_INSTALL_PREFIX=/usr/local \> -DCMAKE_C_FLAGS="-pthread" \> -DCMAKE_CXX_FLAGS="-pthread" \> -DCMAKE_EXE_LINKER_FLAGS="-pthread" \> -DWITH_CHANNEL_URBDRC=OFF \sudoaptinstall-ylibfuse3-dev fuse3
5. 编译(-j$(nproc) 自动使用所有CPU核心,比固定 -j4 更高效)
6. 安装到系统(需要 root 权限)
刷新系统库缓存(否则可能提示找不到 FreeRDP 库)xfreerdp /u:"test"/p:"123456"/v:127.0.0.1 /cert:tofu如果Windows桌面显示在FreeRDP窗口中,则配置成功。
配置WinApps连接
FreeRDP准备好后,我们开始配置WinApps。
第一步:创建WinApps配置文件
在~/.config/winapps/目录下创建winapps.conf文件:
#[WINDOWS 用户名]
RDP_USER="test"
# [WINDOWS 密码]
RDP_PASS="123456"
# [WINDOWS DOMAIN]
# DEFAULT VALUE: '' (BLANK)
RDP_DOMAIN=""
# [WINDOWS IPV4 ADDRESS]
RDP_IP="127.0.0.1"
# [VM虚拟机名称]
# VM_NAME="RDPWindows"
# [WINAPPS BACKEND]
WAFLAVOR="docker"
# [DISPLAY SCALING FACTOR]
RDP_SCALE="100"
# [MOUNTING REMOVABLE PATHS FOR FILES]
REMOVABLE_MEDIA="/run/media"
# [ADDITIONAL FREERDP FLAGS & ARGUMENTS]
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive"
# [DEBUG WINAPPS]
DEBUG="false"
# [AUTOMATICALLY PAUSE WINDOWS]
AUTOPAUSE="off"
# [AUTOMATICALLY PAUSE WINDOWS TIMEOUT]
AUTOPAUSE_TIME="300"
# [FREERDP COMMAND]
FREERDP_COMMAND=""
# PORT CHECK
PORT_TIMEOUT="5"
# RDP CONNECTION TEST
RDP_TIMEOUT="30"
# APPLICATION SCAN
APP_SCAN_TIMEOUT="60"
# WINDOWS BOOT
BOOT_TIMEOUT="120"
# FREERDP RAIL HIDE
FHIDEF="on"

第二步:获取与运行WinApps
克隆WinApps项目(或者直接下载拷贝到winapps目录)cd ~/.config/winappsgit clone https://github.com/winapps-org/winapps.gitcd winapps
sudovim /etc/systemd/resolved.conf运行安装脚本,它将自动扫描Windows容器内的程序并集成到开始菜单: