作为Kickstart的一部分,我可以安装需要特殊参数的RPM吗?

时间:2015-01-19 22:29:50

标签: rpm rhel7

我有一个供应商提供的RPM,通常会要求用户接受EULA协议作为软件包安装的一部分。基本上,预安装脚本(由rpm -qa --scripts显示)如下所示:

rm -f /tmp/mypackage_EULA.txt
echo "Lots and lots of lines of EULA stuff" >> /tmp/mypackage_EULA.txt
echo "Press 'q' to continue" >> /tmp/mypackage_EULA.txt
less -X /tmp/mypackage_EULA.txt

echo "By installing this package you are agreeing to the license, &c."
echo "Press 'a' to agree"

ans=""

while [ "$ans" == "" ]
do
    read -n 1 ans
done

if [ "$ans" != "a" ]; then
    echo ""
    echo "aborting ..."
    exit 1
else
    echo ""
    echo "installing  ..."
fi

如果您不想手动接受EULA,供应商的笔记建议使用--noscripts。

但是,我要做的是将其作为Kickstart的一部分安装,方法是将其添加到%packages列表中,或者将其作为我安装的其他软件包的先决条件自动安装。

  • 有没有办法为Kickstart%包列表中的特定包指定命令或配置选项(例如--noscripts或--nodeps)?
  • 如果没有,我应该使用哪些变通方法来安装这样一个不太标准的RPM?

1 个答案:

答案 0 :(得分:1)

强烈不喜欢那些破坏RPM自动安装的供应商。 (--noscripts 可以安全地在任意包上使用,如果使用不当,极大会破坏。)

我不相信(虽然我没有特别注意)您可以为kickstart脚本的%packages部分中列出的软件包设置类似的选项。

我认为你可以做两件事来解决这个问题。

您可以在%post脚本中手动安装该RPM,然后按照指示传递--noscripts(但要注意CentOS 7的{​​{1}}版本可能会{ “对你来说,对你的控制之外的rpmdb做了一些改变,虽然它应该恢复得很好”但是“大喊”。

或者你可以看看你是否可以提供他们正在使用的任何东西,以便从标准输入中请求信息,并执行类似

的操作
yum