为什么要安装它/它如何工作?

为什么要安装它/它如何工作?

当安装 RHEL 7/CentOS 7 作为 VMware ESX 客户机时,安装程​​序 (Anaconda) 会自动检测虚拟化主机,然后安装相应的工具(open-vm-toolsopen-vm-tools-desktop,也称为 VMware Tools)。[对于那些可以访问 Red Hat 门户的人,我还开设了一个讨论https://access.redhat.com/discussions/2770061]。

自动安装当然很好,open-vm-tools因为它可以启用许多功能(几乎没有依赖性)。

open-vm-tools-desktop不幸的是,anaconda 还安装了具有大量依赖项(Xwindow 和 GTK 库等)的软件包。在小型、安全的无头服务器上,它不是那么有用,也不理想。

open-vm-tools-desktop我尝试在 Kickstart部分明确删除,%packages但没有成功:

%packages
-open-vm-tools-desktop

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

答案1

Red Hat 和 CentOS 没有提供很多关于如何工作的信息。我发现了两个解决方案/解决方法。这是一个新功能,据我所知,自 EL7.2 以来,它被称为 现在根据所使用的虚拟化平台自动安装特定于平台的软件包(BZ#884385),这是anaconda-19.31.123-1.el7 /RHBA-2015:0312-4

为什么要安装它/它如何工作?

此功能由以下机构实现:添加平台特定的组选择 (#884385)get_platform_groupid( 寻找Anaconda 源代码)。

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

列出(特殊/隐藏)组:

$ 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

解决方案 1:阻止安装

只需添加你的 kickstart 部分@platform-vmware --nodefaults即可。%packages

确保不要在行首添加破折号,因为它不会阻止安装该组。您仍然可以添加一行来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,但不是“默认值“ 和 ”选修的“软件包。由于该组没有强制软件包……它实际上不安装任何内容

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

清除软件包用手。请小心,因为它可能会卸载其他软件包,因此在按下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 

尝试了其他解决方案,但不起作用:

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

诊断/Anaconda 的日志

在 Anaconda 的 packaging.log 中查找类似这样的字符串:

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.

相关内容