当安装 RHEL 7/CentOS 7 作为 VMware ESX 客户机时,安装程序 (Anaconda) 会自动检测虚拟化主机,然后安装相应的工具(open-vm-tools
和open-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.