gpt4 book ai didi

linux - 测试rpm安装脚本

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:54 27 4
gpt4 key购买 nike

我正在编写一个自动安装 Apache 的脚本。
我预测试的一部分是检查 rpm 是否已安装。
例如,要安装 apache,您需要 zlib 和 zlib-devel

所以基本上,我做了一个 rpm -qa zlib然后将输出存储在变量中。然后我重复rpm -qa但使用 zlib-devel。
之后,我检查存储变量的版本。
例如:zlib-1.2.8-3.fc20.x86_64zlib-devel-1.2.8-3.fc20.x86_64
我将变量以 1.2.8-3.fc20.x86_64 结尾,我比较这两个变量,如果正确则脚本继续。

问题是,如果安装了超过 1 个 rpm,它会默认继续运行。它只检查第一次安装。

有没有更简单的方法来检查 rpm 安装?

<小时/>

这就是代码的思想:

zlib_rpm=`rpm -qa zlib`
if [ -n "$zlib_rpm" ]
then
zlib_devel_rpm=`rpm -qa zlib-devel*`
if [ -n "$zlib_devel_rpm" ]
then
version_zlib_rpm=`rpm -qa zlib | cut -c 6-`
version_zlib_devel_rpm=`rpm -qa zlib-devel* | cut -c 12-`
if [ "$version_zlib_rpm" = "$version_zlib_devel_rpm" ]
then
echo "zlib rpm --> PASSED"
echo "zlib-devel rpm --> PASSED"
fi
else
echo "zlib-devel rpm --> FAILED"
echo "You can find instructions on how to install rpms on /mw_share/script/instructions/rpm_install"
exit
fi
else
echo "zlib rpm --> FAILED"
echo "You can find instructions on how to install rpms on /mw_share/script/instructions/rpm_install"
exit
fi

谢谢

最佳答案

rpm 实用程序具有丰富的选项可供您使用。在您的特定情况下,我建议使用 --qf 选项。这将允许您打印版本和架构,而无需剪切输出。

rpm -q --qf "%{version}.%{arch}\n" zlib

如果您只想查询特定架构的包,可以在包名后缀 x86_64 来查询 64 位包。

rpm -q --qf"%{version}.%{arch}\n" zlib.x86_64

如果包不存在,rpm 实用程序将返回非零值。

注意:查询特定包时不需要选项 -a。该选项仅用于查询所有包。

关于linux - 测试rpm安装脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20776130/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com