1、操作视频
解决方案:Linux通过虚拟机安装Windows后,再通过Winapps安装Office应用。
操作视频链接:https://www.bilibili.com/video/BV1zY4y1v7GV?t=71.7
2、安装过程中的坑
(1) 注意虚拟机一定要命名RDPWindows,不要自主命名,因为Winapps里面远程操控的虚拟机名就是RDPWindows,改成其它的名字,除非你去修改Winapps配置里面的代码,不然无法识别。按up主的视频一步步操作即可。
(2) 对于Winapps,虚拟机的网络必须是以"default"为网络名称,如果换了WIFI,掉了"default"的网,即无法连接网络时。在“编辑→连接详情→虚拟网络”处选中"default",然后点击下方实心点“停止网络”,接着点击“回收站”图标,删除后,点击“+”,重建名称为“default”的网络,模式NAT。最后点击“Apply”。
(注意,新建的网络名称默认为"network",请不要采用,不然winapps无法识别这个网络名称。一定要修改为"default")
最后给系统设置网卡:“编辑→虚拟机详情→左侧菜单栏:NIC→虚拟网络接口-网络源:虚拟网络'default':NAT ”
(3) Linux系统一开机,虚拟机和Winapps会自动开启 libvirt-guests.service、libvirtd.service 服务。所以我们开机后,直接双击docx文件,或者双击Word图标,即可调用Winapps来开启虚拟机的Microsoft Word。
拓展1:如何查看 libvirt-guests.service、libvirtd.service 是否开机启动?
通过systemctl 命令查看
yammie@oym-pc:/home/yammie $ systemctl is-enabled libvirt-guests.service libvirtd.service enabled enabled
拓展2:如何关闭/开启libvirt-guests.service、libvirtd.service 服务?
systemctl disable <service名称> #该服务关闭开机自启动
systemctl enable <service名称> #该服务开启开机自启动
# 示例:关闭KVM虚拟机的通信服务,导致通信受阻,无法连接到winapps。由于没有关闭libvirt-guests.service,所以KVM虚拟机还是默认开机开启的。 yammie@oym-pc:/home/yammie $ systemctl disable libvirtd.serviceRemoved "/etc/systemd/system/sockets.target.wants/libvirtd-ro.socket".
Removed "/etc/systemd/system/sockets.target.wants/virtlogd.socket".
Removed "/etc/systemd/system/sockets.target.wants/virtlockd.socket".
Removed "/etc/systemd/system/sockets.target.wants/libvirtd.socket".
Removed "/etc/systemd/system/multi-user.target.wants/libvirtd.service"
不建议关闭该服务,否则每次打开Word文档前,都需要手动开启Winapps。
手动开启Winapps的操作:
在主目录(~ 或者 home/<用户名>)处开启终端,输入以下命令
yammie@oym-pc:/home/yammie $ cd ./winapps yammie@oym-pc:/home/yammie/winapps (main) $ bin/winapps check开启Winapps后,让终端在后台挂着也行,关掉终端也没问题,libvirtd.service 在后台运行即可。
(4)由于开启KVM虚拟机很占内存,有时候我们也不需要通过Microsoft Office 进行工作,想要双击桌面图标关闭KVM虚拟机和Winapps,我们可以创建sh脚本,直接开启或者关闭RDPWindows和winapps。然后在桌面创建一个快捷方式,以sh脚本为引导。
① 在winapps目录下,新创建 RDPWindows_and_Winapps_scripts文件夹,用来保存脚本文件。安装默认目录通常在:/home/<用户名>/winapps/ 即 主文件夹/winapps
在该目录下创建两个脚本:
yammie@oym-pc:/home/yammie/winapps/RDPWindows_and_Winapps_scripts (main) $ touch open_RDPWindows_and_Winapps.sh yammie@oym-pc:/home/yammie/winapps/RDPWindows_and_Winapps_scripts (main) $ touch close_RDPWindows_and_Winapps.sh |
编辑两个脚本,输入以下内容:
[1] open_RDPWindows_and_Winapps.sh
#!/bin/bash #开启RDPWindows virsh start RDPWindows #进入winapps,检查并开启winapps,对RDPWindows进行远程操作 cd ~/winapps bin/winapps check |
[2] close_RDPWindows_and_Winapps.sh
#!/bin/bash #关闭虚拟机的RDPWindows virsh shutdown RDPWindows #结束virtual进程 killall virt-manager |
② 给脚本文件授予可执行权限,使其右键出现:Run as a Program
yammie@oym-pc:/home/yammie/winapps/RDPWindows_and_Winapps_scripts (main) $ sudo chmod +x ./open_RDPWindows_and_Winapps.sh yammie@oym-pc:/home/yammie/winapps/RDPWindows_and_Winapps_scripts (main) $ sudo chmod +x ./close_RDPWindows_and_Winapps.sh |
③ /home/<用户名>/winapps/icons中,复制两个Windows.SVG,重命名为:
open_RDPWindows_and_Winapps.svg 和 close_RDPWindows_and_Winapps.svg
④ 使用文本编辑器:notepadqq或者gedit打开open_RDPWindows_and_Winapps.svg 和 close_RDPWindows_and_Winapps.svg。在“fill=”处分别设置图标颜色:
open_RDPWindows_and_Winapps.svg:<path...... fill="#CCFF66" />
|
如图所示:
保存文本。如果不见颜色改变,先回到winapps的目录,再次进入icons文件夹,就能看到颜色改变了。
⑤ 选中两个图标,右键复制到主目录/桌面。
⑥ 编辑svg图标代码,分别输入以下内容
[1] open_RDPWindows_and_Winapps.svg
[Desktop Entry] Name[zh_CN]=开启RDPWindows和Winapps Exec=/home/yammie/winapps/RDPWindows_and_Winapps_scripts/open_RDPWindows_and_Winapps.sh -c %f Icon=/home/yammie/winapps/icons/open_RDPWindows_and_Winapps.svg Terminal=false Type=Application NoDisplay=true StartupNotify=true |
保存→文件→重命名:open_RDPWindows_and_Winapps.desktop
[2] close_RDPWindows_and_Winapps.svg
[Desktop Entry] Name[zh_CN]=关闭RDPWindows和Winapps Exec=/home/yammie/winapps/RDPWindows_and_Winapps_scripts/close_RDPWindows_and_Winapps.sh -c %f Icon=/home/yammie/winapps/icons/close_RDPWindows_and_Winapps.svg Terminal=false Type=Application NoDisplay=true StartupNotify=true |
保存→文件→重命名:close_RDPWindows_and_Winapps.desktop
如果图标没有出来,请把Icon对应的路径重新复制粘贴一次,桌面图标就出现了。
⑦ 右键桌面图标:Allow Launching (允许运行)以后在桌面双击图标,就能实现直接开启或关闭 RDPWindows和Winapps了