我有一个供应商提供的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列表中,或者将其作为我安装的其他软件包的先决条件自动安装。
答案 0 :(得分:1)
我强烈不喜欢那些破坏RPM自动安装的供应商。 (--noscripts
不可以安全地在任意包上使用,如果使用不当,极大会破坏。)
我不相信(虽然我没有特别注意)您可以为kickstart脚本的%packages
部分中列出的软件包设置类似的选项。
我认为你可以做两件事来解决这个问题。
您可以在%post
脚本中手动安装该RPM,然后按照指示传递--noscripts
(但要注意CentOS 7
的{{1}}版本可能会{ “对你来说,对你的控制之外的rpmdb做了一些改变,虽然它应该恢复得很好”但是“大喊”。
或者你可以看看你是否可以提供他们正在使用的任何东西,以便从标准输入中请求信息,并执行类似
的操作yum