WinApps:在Linux上运行Windows应用程序,就像它们是原生操作系统的一部分一样

2020-11-08 12:57:45

运行Windows应用程序,如Microsoft Office in Linux(Ubuntu)和GNOME,就像它们是本地操作系统的一部分一样,包括Nautilus集成,用于右键单击特定MIME类型的文件以打开它们。

早在4月份,海登·巴恩斯就在推特上发布了Ubuntu内部容器或虚拟机中似乎是本地Windows应用的东西。然而,目前还没有关于这是如何实现的细节,尽管它很可能是一种类似的方法,但使用的是内部构建的Windows Container。

WinApps不是等待,而是作为一种简单的命令方式创建的,它可以将运行在VM(或任何RDP服务器上)中的应用程序直接包含到GNOME中,就像它们是本机应用程序一样。WinApps的工作方式:

如果安装了这些程序,它会为CLI和GNOME托盘创建利用FreeRDP的快捷方式。

您也可以右键单击主目录中的任何文件以使用应用程序打开。

子系统支持:添加脚本以删除(和重新添加)资源管理器外壳和其他不需要的Windows功能,以最大限度地减少开销。

您需要创建一个包含以下信息的~/.winapp配置文件:

如果您将下面的选项2与预先存在的非KVM RDP服务器一起使用,则可以使用RDP_IP指定它的位置。如果您在启用NAT的KVM中运行虚拟机,请将rdp_ip注释掉,WinApps将自动检测正确的本地IP。

您可以参考KVM文档了解具体信息,但您需要做的第一件事是设置一个运行Windows 10专业版(或任何支持RDP的版本)的虚拟机。首先,克隆WinApp并安装KVM和FreeRDP:

现在将KVM设置为以您的用户身份运行,而不是以超级用户身份运行,并允许通过AppArmor运行(对于Ubuntu 20.04及更高版本):

Sudo sed-i";s/#user=";根";/user=";$(id-un)";/g";/etc/libvirt/qemu.confsudo sed-i";s/#group=";根";/group=";$(id-gn)";/g";/etc/libvirt/qemu.consudo usermod-a-G kvm$(id-un)sudo usermod-a-G libvirt$(id-un)sudo systemctl reart libvirtdsudo ln-s/etc/parapmor.d/usr.sbin.libvirtd/etc/apapmor.d/禁用/睡眠5sudo virsh net-autostart defaultsudo virsh net-start default。

您可能需要重新启动,以确保将当前的Shell添加到组中。

现在,您需要更改虚拟机上的任何设置,并安装Windows和任何您想要的程序,如Microsoft Office。您可以通过以下方式访问该虚拟机:

进入开始菜单,将PC名称更改为RDPWindows(这将允许WinApp检测本地IP)。

$./install.sh[sudo]fmstrat的密码:正在安装...。正在检查RDP计算机中已安装的应用程序...。正在检查RDP计算机中已安装的应用程序...。正在配置Excel...。完事了。正在配置PowerPoint...。完事了。正在配置Word...。完事了。正在配置Windows...。完成。安装完成。

如果您已经有一台RDP服务器或虚拟机,那么使用WinApps非常简单。只需创建~/.winapp配置文件,然后运行:

$git克隆https://github.com/Fmstrat/winapps.git$CD winapp$sudo apt-get install-y freerdp2-x11$./install.sh[sudo]fmstrat的密码:正在安装...。正在检查RDP计算机中已安装的应用程序...。正在配置Excel...。完事了。正在配置PowerPoint...。完事了。正在配置Word...。完事了。正在配置Windows...。完成。安装完成。

您需要确保启用了RDP应用程序,这可以通过将KVM/RDPApps.reg中的内容合并到注册表中来设置。

向安装程序添加应用程序很容易。只需复制应用程序文件夹中的一个应用程序配置,然后:

当运行安装程序时,它将检查是否安装了任何已配置的应用程序,如果安装了,它将在主机操作系统上创建适当的快捷方式。