我可以安装需要特殊参数的 RPM 作为 Kickstart 的一部分吗?
Can I install an RPM requiring special arguments as part of Kickstart?
我有一个供应商提供的 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?
我非常不喜欢那些破坏 RPM 自动安装的供应商。 (--noscripts
不可以安全地用于任意包,如果使用不当,会严重破坏。)
我不相信(尽管我没有具体查看)您可以为 kickstart 脚本的 %packages
部分中列出的软件包设置类似的选项。
我认为您可以做两件事来解决这个问题。
您可以在 %post
脚本中手动安装该 RPM,然后按照指示传递 --noscripts
(但请注意 CentOS 7
的 yum
版本是可能会 "yell" 对你进行一些超出其控制范围的 rpmdb 更改,尽管它应该恢复得很好)。
或者你可以看看你是否可以提供他们正在使用的任何东西来从标准输入中请求它想要的信息,然后做一些类似的事情
echo a | yum install <package>
我有一个供应商提供的 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?
我非常不喜欢那些破坏 RPM 自动安装的供应商。 (--noscripts
不可以安全地用于任意包,如果使用不当,会严重破坏。)
我不相信(尽管我没有具体查看)您可以为 kickstart 脚本的 %packages
部分中列出的软件包设置类似的选项。
我认为您可以做两件事来解决这个问题。
您可以在 %post
脚本中手动安装该 RPM,然后按照指示传递 --noscripts
(但请注意 CentOS 7
的 yum
版本是可能会 "yell" 对你进行一些超出其控制范围的 rpmdb 更改,尽管它应该恢复得很好)。
或者你可以看看你是否可以提供他们正在使用的任何东西来从标准输入中请求它想要的信息,然后做一些类似的事情
echo a | yum install <package>