ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

在 Linux 上直接打开 Office 和 Photoshop:WinApps 运行 Windows 应用实战指南

在 Linux 上直接打开 Office 和 Photoshop:WinApps 运行 Windows 应用实战指南 在 Linux 上直接打开 Office 和 PhotoshopWinApps 运行 Windows 应用实战指南【免费下载链接】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晚上十一点一份 .pptx 要明早九点前交出去同事还甩来一个 PSD 让你改个角。与其重启进 Windows 双系统不如用 WinApps 在 Linux 上运行 Windows 应用Windows 在后台容器里静静跑着Word、Excel、Photoshop 会像本地程序一样出现在你的 Linux 应用菜单里。这篇指南带你从零把整套流程走通。WinApps 是怎么做到的WinApps 的底座是两层先用 Docker、Podman 或 libvirt 在 KVM 之上开出一台 Windows 10/11 虚拟机再用 FreeRDP 客户端连进这台虚拟机把目标程序的窗口单独搬到你的 Linux 桌面上。同时你的 Linux 主目录会以\\tsclient\home的形式共享给 Windows 端文件双向可见。Windows 程序直接出现在 Linux 应用列表里各自拥有独立窗口文件管理器里右键文件就能用 Word、Photoshop 打开一台虚拟机供所有应用共用不用为每个程序单独开机Office、Photoshop、Visual Studio 等社区已测应用自带高清图标和文件关联WinApps 硬件要求一览动手前先对照这张表自检任何一项不达标都会在后面卡住检查项要求验证或修改方式CPU 虚拟化支持 Intel VT-x 或 AMD-V且已在 BIOS 中开启lscpu输出中能看到 Virtualization 一项KVM 模块已加载lsmod | grep kvm有输出kvm_intel 或 kvm_amd内存主机建议 8GB 以上分给虚拟机至少 4GB改 compose.yaml 里的RAM_SIZE默认 4G磁盘系统盘预留 64GB 可用空间compose.yaml 里DISK_SIZE默认 64G发行版Debian/Ubuntu、Fedora/RHEL、Arch、openSUSE、Gentoo 等以官方依赖列表为准桌面环境KDE Plasma、GNOME 或 XFCE当前登录的桌面网络稳定连接首次运行要拉取基础镜像—Windows 版本 ⚠️仅专业版/企业版/Server 可用家庭版不带 RDP 服务装了也连不上 三步跑通 WinApps从克隆到首次启动第一步用 Docker 开出 Windows 虚拟机先用包管理器装好 DockerUbuntu/Debian 用sudo apt install docker.ioFedora 可换 Podman 加 podman-compose把你的用户加入docker组后注销重登。下面这条命令把 WinApps 仓库克隆到本地git clone https://gitcode.com/GitHub_Trending/wina/winapps cd winapps执行后你会得到一个 winapps 目录里面的 compose.yaml 就是这台虚拟机的完整配置。启动前编辑 compose.yaml只需要改几行其余保持默认environment: VERSION: 11 # Windows 版本装 Win10 就改成 10 RAM_SIZE: 4G # 分配给虚拟机的内存按需调整 CPU_CORES: 4 # 分配给虚拟机的核心数按需调整 DISK_SIZE: 64G # 系统盘容量 USERNAME: MyWindowsUser # 改成自己好记的 Windows 用户名 PASSWORD: MyWindowsPassword # 改成自己的 Windows 密码这里的 USERNAME 和 PASSWORD 就是之后每次 RDP 连接要用的账号务必设成你记得住的值。在仓库目录里执行下面的命令构建容器并开始安装 Windowsdocker compose --file ./compose.yaml up首次运行会自动下载基础镜像并完整走一遍 Windows 安装几分钟到十几分钟不等装到尾声时打开浏览器访问 http://127.0.0.1:8006 通过网页 VNC 确认桌面正常即可。还有一个前置检查文件夹共享依赖 iptables 内核模块用lsmod | grep ip_tables确认有输出如果为空执行下面这条命令然后重启系统echo -e ip_tables\niptable_nat | sudo tee /etc/modules-load.d/iptables.conf重启后再查一次lsmod | grep ip_tables应该能看到一行输出否则 Windows 里看不到你的 Linux 主目录。第二步安装 Linux 侧依赖并写好配置文件在 Linux 上安装 FreeRDP 3 客户端和几个辅助工具sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd # Debian/Ubuntu sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncat # Fedora/RHEL这两条命令装好后用xfreerdp3 --version或xfreerdp --version能打出版本号就说明客户端就位了。WinApps 的所有连接参数都从~/.config/winapps/winapps.conf读取。创建目录并写入以下内容把用户名、密码和后端改成你的实际情况mkdir -p ~/.config/winapps cat ~/.config/winapps/winapps.conf EOF RDP_USERMyWindowsUser # 改成 compose.yaml 里的 Windows 用户名 RDP_PASSMyWindowsPassword # 改成 compose.yaml 里的 Windows 密码 RDP_IP127.0.0.1 # docker/podman 默认走回环地址 RDP_PORT3389 WAFLAVORdocker # 按实际后端改为 podman 或 libvirt RDP_SCALE100 # 高分屏可改为 140 或 180 RDP_FLAGS/cert:tofu /sound /microphone home-drive DEBUGtrue # 开启日志方便排错 EOF chmod 600 ~/.config/winapps/winapps.conf配置文件里有明文 Windows 密码最后一行把它锁成仅当前用户可读写。第三步测试 RDP 连接并运行安装向导先手动连一次确认虚拟机可达Podman rootless 用户请在命令前加podman unshare --rootless-netnsxfreerdp3 /u:MyWindowsUser /p:MyWindowsPassword /v:127.0.0.1:3389 /cert:tofu弹出一个 Windows 桌面窗口就说明链路通了断开即可进入下一步如果终端里刷出证书名称不匹配的警告直接翻到文末的踩坑速查。保持虚拟机开着运行仓库里自带的安装脚本bash setup.sh运行后会出现全屏交互式向导选择安装、选择只装当前用户然后从列表里勾选要暴露到 Linux 的应用也支持一键安装全部受测应用脚本会把这些应用的快捷方式逐个复制进你的用户目录。向导走完后Linux 应用菜单里就已经能看到对应的 Windows 应用了。可选支线用 libvirt 代替容器建虚拟机需要 GPU 直通、精确 CPU 绑定这类自定义硬件时可以改走 libvirt 路线流程更手动但上限更高要点如下安装virt-manager把用户加入kvm和libvirt组并在 shell 配置里设LIBVIRT_DEFAULT_URIqemu:///system用 Windows ISO 创建虚拟机名称设为RDPWindowsWinApps 靠这个名字识别给 2 核、4096MB 内存磁盘与网卡都选 VirtIO并挂上 VirtIO 驱动 ISOWindows 装完后运行virtio-win-guest-tools.exe装好 QEMU Guest Agent再执行 oem/ 目录下的RDPApps.reg、TimeSync.ps1、NetProfileCleanup.ps1和install.bat注意Container.reg只用于 docker/podmanlibvirt 不用配置文件里把WAFLAVOR改为libvirtRDP_IP留空WinApps 会自动探测虚拟机 IP。内存页建议把 Current allocation 设成 1024MB靠气球驱动按需伸缩日常怎么用应用在哪、文件怎么互访装好之后应用入口因桌面而异但都在系统应用菜单里KDE Plasma打开应用启动器直接输入应用名搜索GNOME打开活动概览Activities按名称搜索XFCE在应用菜单里按分类查找一次点击启动的 Windows 应用就是一个普通的 Linux 窗口可以最小化、可以拖到别的桌面。文件互访靠两个方向Linux 主目录在 Windows 资源管理器里显示为\\tsclient\homeWindows 端直接打开读写反过来在 Linux 侧的文件管理器如 Nautilus里右键文件打开方式里会列出对应 MIME 类型的 Windows 程序。日常运维命令就这几条docker compose --file ~/.config/winapps/compose.yaml start # 开机 docker compose --file ~/.config/winapps/compose.yaml stop # 关机安装后 WinApps 会把 compose 文件复制到~/.config/winapps/日常开关机都用这份Podman 用户把docker compose换成podman-compose。再补两条常用命令Windows 里新装了软件后运行winapps-setup --user --add-apps重新扫描新应用就会进菜单启动某个应用失败时用tail -f ~/.local/share/winapps/winapps.log看日志定位。个别没被注册的应用也可以随时用winapps manual C:\Program Files\...\app.exe手动拉起。能装哪些 Windows 应用社区已测并配好图标、文件关联的代表性应用办公Word、Excel、PowerPoint2016/2019/O365另有 OneNote、Outlook、Visio、Project设计PhotoshopCS6 到 2026、Illustrator、Lightroom、InDesign、Fusion 360、Affinity 系列开发Visual Studio 2022Community/Professional/Enterprise、PowerShell、SQL Server Management Studio 20、LinqPad 8完整清单在仓库的 apps/ 目录每个子目录对应一个应用里面的 info 文件定义了快捷名、exe 路径和 MIME 关联。WinApps 并不局限于这份清单注册表里登记的任何 .exe 都能被扫描发现只是没有高清图标和文件关联。明确的限制只有一条——内核级反作弊如 Riot Vanguard用不了。进阶调优多显示器、内存气球、CPU 绑定与自定义应用多显示器与高分辨率缩放下面两行分别控制多屏输出和界面缩放改完配置文件即可RDP_FLAGS/cert:tofu /sound /microphone home-drive /multimon RDP_SCALE140RDP_SCALE只接受 100、140、180 三个值写错会自动取最近的合法值/multimon若出现黑屏就删掉它再试。CPU 核心绑定libvirtlibvirt 路线下把虚拟机的 vCPU 钉在具体物理核上可以减少上下文切换cputune vcpupin vcpu0 cpuset2/ vcpupin vcpu1 cpuset6/ /cputune先用lscpu -e查看核心与缓存的对应关系尽量挑不共享缓存的组合。注册自定义应用某个应用没被预置时复制 apps/ 里任意一个目录当模板改字段# apps/myapp/info NAMEMy Application FULL_NAMEMy Application WIN_EXECUTABLEC:\Program Files\MyApp\myapp.exe CATEGORIESWinApps;Office MIME_TYPES ICONmyapp同目录放一张icon.svg然后依次执行winapps-setup --user --uninstall和winapps-setup --user重装一次新条目就会出现在向导列表里。可选项安装系统托盘 Launcher官方的 WinApps Launcher 在系统托盘加一个小菜单开关、暂停、重启虚拟机以及从列表直接启动已装应用省去记命令的麻烦。这个动画展示了托盘菜单里的虚拟机控制项。 踩坑速查WinApps 常见问题RDP 连接提示 CERTIFICATE NAME MISMATCH原因Linux 侧残留了旧 Windows 镜像的 RDP 证书。 解法删掉~/.config/freerdp/server/下对应的文件例如127.0.0.1_3389.pem重新连接时会自动生成新证书。Windows 里看不到 Linux 主目录原因iptables 内核模块没加载文件夹共享没生效。 解法把ip_tables和iptable_nat写入/etc/modules-load.d/iptables.conf重启系统。setup.sh 报容器未运行或 3389 端口不通原因虚拟机没开机或 Windows 是家庭版不带 RDP 服务。 解法先docker compose start把虚拟机拉起来确认 Windows 是专业版、企业版或 Server。podman rootless 模式报 /dev/kvm 权限错误原因rootless 容器默认碰不到 KVM 设备。 解法把用户加入kvm组运行时用crun而不是runc并启用 compose.yaml 末尾的group_add: keep-groups段。Windows 里新装了应用Linux 菜单里没有原因WinApps 只在安装和手动扫描时抓取应用列表。 解法运行winapps-setup --user --add-apps重新扫描一遍。加了 /multimon 之后黑屏原因部分 FreeRDP 版本的多屏输出存在已知问题。 解法把/multimon从RDP_FLAGS里删掉等客户端版本更新后再试。WinApps 的思路是把真正用到的那部分 Windows 能力安放进 Linux 桌面一台虚拟机多个应用文件两边都看得到。想继续深入的话docs/ 目录里有 Docker 和 libvirt 两条路线的完整说明winapps-setup --help也能列出全部可用参数。如果这篇指南帮你省了一次重装系统不妨给仓库点个 Star 支持一下维护者。【免费下载链接】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),仅供参考
返回列表