Kickstart:您能确定 %pre 中的 %package 选择吗

Kickstart:您能确定 %pre 中的 %package 选择吗

我一直在寻找,但还没有看到任何人使用逻辑来确定下面选项的软件包/软件包组选择的示例%packages。我试图让 kickstart 根据在中发现的标准安装软件包%pre,例如:

%pre
    if [ "$(/usr/sbin/dmidecode -s system-manufacturer)" = 'Dell Inc.' ]; then
        echo 'srvadmin-all'
    elif [ "$(/usr/sbin/dmidecode -s system-manufacturer)" = 'VMware, Inc.' ]; then
        echo 'open-vm-tools'
    fi
%end

我从未在本节中看到过条件逻辑的示例%packages,但我正在考虑将所有输出打印到一个用语句引用的文件中,但自 RHEL7 以来%include我一直遇到问题%include%packages

我很好奇,想知道是否有其他人按照这种方法成功使用了这些方法。

答案1

您可以使用 kickstart 的包含文件功能来实现这一点。使用您的%pre部分编写一个包含所需软件包的文件,然后将该文件包含在该%packages部分中。

例如:

%pre --interpreter=/bin/bash
touch /tmp/packages
if [ "$(/usr/sbin/dmidecode -s system-manufacturer)" = "Dell Inc." ]; then
    echo 'srvadmin-all' >> /tmp/packages
elif [ "$(/usr/sbin/dmidecode -s system-manufacturer)" = "VMware, Inc." ]; then
    echo 'open-vm-tools' >> /tmp/packages
fi
%end

%packages
@core
@base
chrony
%include /tmp/packages
%end

相关内容