首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试rpm安装脚本

测试rpm安装脚本
EN

Stack Overflow用户
提问于 2013-12-25 19:32:09
回答 1查看 746关注 0票数 0

我正在开发一个自动安装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,比较这两个变量,如果它正确,脚本将继续。

问题是,如果安装了更多的rpm,默认情况下它会继续运行。它只检查第一次安装。

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

这就是代码的思想:

代码语言:javascript
复制
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

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-12-26 00:50:11

rpm实用程序有丰富的选项可供使用。在您的特殊情况下,我建议使用--qf选项。这将允许您打印版本和架构,只需要避免需要cut输出。

代码语言:javascript
复制
rpm -q --qf "%{version}.%{arch}\n" zlib

如果您只想查询特定架构的包,可以将packagename后缀为x86_64,以查询64位包。

代码语言:javascript
复制
rpm -q --qf"%{version}.%{arch}\n" zlib.x86_64

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

注意:在查询指定包时,不需要选项-a。此选项仅用于查询所有包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20776130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档