防止在EL 7上安装open-vm-tools-desktop / @ platform-vmware

在安装RHEL 7 / CentOS 7作为VMware ESX guest虚拟机时,安装程​​序(Anaconda)将自动检测虚拟主机,然后安装相应的工具( open-vm-toolsopen-vm-tools-desktop ,也称为VMware Tools )。 [对于那些有红帽门户访问权限的人,我也打开了一个讨论https://access.redhat.com/discussions/2770061 ]。

自动安装open-vm-tools是非常好的,因为它启用了很多function(很less依赖)。

不幸的是,anaconda也安装了包含很多依赖项(Xwindow和GTK库等)的软件包open-vm-tools-desktop 。 没有那么有用,在小型,安全的无头服务器上不可取。

我试图明确地删除Kickstart %packages中的open-vm-tools-desktop部分,但没有成功:

 %packages -open-vm-tools-desktop 

如何防止RHEL 7安装open-vm-tools-desktop

红帽和CentOS没有提供关于如何工作的大量信息。 我发现了两个解决scheme/解决方法。 这是自EL7.2以来的一项新function,据我所知,现在平台特定的软件包现在基于所使用的虚拟化平台 (BZ#884385) 自动安装 ,它在anaconda-19.31.123- 1.el7 / RHBA-2015:0312-4

为什么安装/如何工作?

这是通过添加平台特定的组select(#884385) (在Anaconda源代码中查找get_platform_groupid )实现的function。

它的工作方式是anaconda执行systemd-detect-virt检测虚拟化或容器主机(vmware,qemu,kvm,microsoft … docker,lxc,openvz …),然后添加一个名为platform-$VIRTNAME的YUM组

列出(特殊/隐藏)组:

 $ yum group list hidden -v "@platform*" | grep "^ " Platform Development (platform-devel) VMware platform specific packages (platform-vmware) 

显示组内容:

 $ yum group info platform-vmware Group: VMware platform specific packages Group-Id: platform-vmware Description: Virtualization utilities and drivers for VMware Default Packages: open-vm-tools open-vm-tools-desktop 

解决scheme1:防止安装

只需在kickstart的%packages部分添加@platform-vmware --nodefaults

确保你不要在线的开始,因为它不会阻止组被安装。 您仍然可以添加一行open-vm-tools来安装该软件包!

Kickstart片段示例:

 %packages ## Workaround to prevent automatic installation ## of package open-vm-tools-desktop (an X11 library) ## http://serverfault.com/q/815356/238995 ## https://access.redhat.com/discussions/2770061 ## Note: DON'T put a dash at the begining of the line ! ## The way it works, is that it instructs Anaconda to install ## the "Mandatory" package from the YUM group 'platform-vmware', ## but not the "Defaults" and "Optional". ## Since this group has no Mandatory package... it actually ## install .. nothing ! @platform-vmware --nodefaults #Optionaly, install this if needed: #open-vm-tools 

它的工作方式是指示Anaconda从YUM组platform-vmware安装“ Mandatory ”软件包,而不是“ Defaults ”和“ Optional ”软件包。 由于这个组没有强制性的包…它实际上没有安装任何东西

解决方法:手动清除软件包,

用手清洗包装。 小心,因为它可能会卸载其他软件包,所以仔细检查之前按下yes ! (并根据需要微调列表)

 /usr/bin/yum erase open-vm-tools-desktop harfbuzz libthai libtiff mesa-libgbm mesa-libglapi libXxf86vm libxshmfence libdrm libpng mesa-libEGL libXau libXft mesa-libGL pixman atk cairo gdk-pixbuf2 hicolor-icon-theme libxcb libXcomposite libXcursor libXdamage libXfixes libXrender pango pangommatkmm cairomm gtk2 gtkmm24 libX11 libXext libXi libXinerama libXrandr libXtst glibmm24 graphite2 libX11-common 

其他解决scheme尝试,但不工作:

  • 在Kickstart %packages部分显式删除@platform-vmware
  • 在Kickstart %packages部分显式删除open-vm-tools-desktop

诊断/ Anaconda的日志

在Anaconda的`packaging.log中查找这样一个Tring:

 INFO packaging: Adding platform group platform-vmware 

由systemd-detect-virt报告的其他平台尚不支持,并可能会报告:

 INFO packaging: Platform group kvm not available. INFO packaging: Platform group microsoft not available. INFO packaging: Platform group oracle not available. INFO packaging: Platform group xen not available. INFO packaging: Platform group qemu not available. INFO packaging: Platform group zvm not available. INFO packaging: Platform group bhyve not available.