RHEL 7.3在repoquery和repotrack操作方面的差异

时间:2018-02-14 13:18:50

标签: rhel rhel7

我必须评估受内核升级影响的软件包集(RHEL7.3) 以某种方式独立于物理机器上安装的内容 我正在运营的地方(即不受物理机器yum数据库的影响)。

为了解决这个问题,我发现了一些主要包含的命令 在yum-utils包中,即repoquery,repotrack和yumdownloader。 但上述命令/实用程序之间的区别有些不同 令我感到困惑的是,我没有在Google上找到令人信服的论证。

特别是,我专注于repoquery和repotrack,我试图生成 我正在搜索的包集,并比较结果。 由于repotrack给出了包含数字版本的包列表,我用awk进行了后期过滤, 为了简单地看一下包的集合(有时称为CAPABILITIES) 由两个命令产生的是相干的,即两者都产生相等的集合。 结果显示生成的集合(稍微)不同(我的架构是x86_64类型)。

下面是上述说明的完整代码。 我正在寻找依赖Red Hat 7.3软件包的集合 关于内核升级(即kernel-3.10.0-514.36.1.el7.x86_64)

rm /tmp/repoquery.ascii ;\
repoquery --qf="%{name}.%{arch}" -R --resolve --recursive kernel-3.10.0-514.36.1.el7.x86_64 |\
sort > /tmp/repoquery.ascii ;\
rm /tmp/repotrack.ascii ;\
repotrack -u -a x86_64 -r <REPOSITORY> kernel-3.10.0-514.36.1.el7.x86_64 |\
sed 's/\// /g' |\
awk '{ print $NF;  }' |\
sort > /tmp/repotrack.ascii ;\
cat /tmp/repotrack.ascii |\
sed 's/-/ /g' |\
sed 's/\./ /g' |\
awk '{ for(i=1; i <= NF; i=i+1)\
        if(i == NF)\
            printf("\n",$NF);\
        else\
            if(i == 1)\
                printf("%s",$1);\
            else\
                if($i ~ /^[a-z]/)\
                    printf("-%s",$i);  }' |\
sed 's/-el7-/\./g' |\
sed 's/-el7_[0-9]-/\./g' |\
sort > /tmp/repotrack_filtered.ascii ;\
diff --side-by-side /tmp/repoquery.ascii /tmp/repotrack_filtered.ascii

最后一个问题是:为什么会这样? 更一般:repotrack和repoquery的操作差异的细节是什么?

0 个答案:

没有答案