老生常谈之,想在Linux无缝使用Windows程序有何办法和各自优劣

rt,最近简单试了一下之前帖子里谈到的winboat以及相对更古老点的winapps两个解决方案。结合自己早就在用的虚拟机和wine方案,先给结论:winboat功能过于早期,性能最差、winapps最灵活libvirt后端下体验尚可。但都比不上虚拟机的环境全面和wine的灵活性。

下面大致列一下winboat的安装要求,其中要求要有稳定的网络连接(如果没有准备好Windows镜像),docker,docker-compose v2,以及libvirt,freerdp。很怪对不对,但是毕竟是依赖于windows docker那个项目的,本质上是设置好后拉取一个Windows的docker镜像,然后向微软服务器请求安装文件并解包利用docker-compose打包成新镜像并启动。本质上只要流程知道了可以自己写个脚本实现。至于软件本体用着只能说凑合,因为docker的缘故网络性能个人感觉比较纯qemu虚拟机的要差得多,io性能更不用提了。

而winapps相对来讲轻量许多,轻量到启动器都得自己去构建。安装上是使用一个脚本来实现的(通过终端里的dialog),需要预先准备好任意形式的Windows实例(docker或虚拟机),然后准备好配置文件并安装。个人使用的时候是直接套在已有的虚拟机上了。优势对比vbox是可以不用vbox的无缝模式,当然缺点也很明显,安装相对繁琐,并且由于也是rdp,所有rdp有的问题也都有。可以满足大部分情况需要,但不适合重度使用。

其实能用 Wine 的程序我个人认为用 Wine 解决就好了,Wine 已经越来越好了,虽然转译可能会出些小小的问题,但是能正常工作起来就没多少问题了
但是不支持 Wine 的话,那还是装一个即开即用即走的虚拟机吧……WinApps 和 WinBoat 还是偏向于轻量用的(用过一阵子 WInApps 装的 Podman Windows + RDP,主要目的是跑 Qt 程序的 Windows 编译)

winapps我在libvirt后端加持下体感感觉比docker/podman容器后端的体验要好当然不排除使用的程序只有office 365本身的原因