1

我有一个供应商提供的 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 %packages 列表中的特定包指定命令或配置选项(例如 --noscripts 或 --nodeps)?
  • 如果不是,我应该使用什么解决方法来安装这样的不完全标准的 RPM?
4

1 回答 1

1

非常不喜欢那些破坏 RPM 自动安装的供应商。(在任意包上使用--noscripts不安全的,如果使用不当,可能会严重破坏事情。)

我不相信(尽管我没有专门查看)您可以为%packageskickstart 脚本部分中列出的软件包设置类似的选项。

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

%post您可以在脚本中手动安装该 RPM,然后--noscripts按照说明通过(尽管请注意,CentOS 7的版本yum可能会因为在其控制范围之外对 rpmdb 进行更改而对您“大喊大叫”,尽管它应该恢复得很好)。

或者,您可以查看是否可以提供他们正在使用的任何内容,以从标准输入中请求该信息,并执行类似的操作

echo a | yum install <package>
于 2015-01-19T22:35:01.813 回答