哪个yum组包含给定的包?

时间:2014-01-21 11:56:49

标签: redhat rpm yum

有没有办法问yum哪个组包含给定的包?我知道如何询问给定组中的包是什么,并且可以编写一个快速脚本来遍历所有组,但是拥有比这更简单的机制会很好。

3 个答案:

答案 0 :(得分:8)

如果你只是在寻找一个人类使用的“更简单的机制”,并且在某种类型的脚本中不需要它,你可能会得到这个:

yum groupinfo '*' | less +/sendmail-cf

当然,将sendmail-cf替换为您感兴趣的包名称。

答案 1 :(得分:3)

您可以使用yum-list-data插件找到指定包所属的组。

$ sudo yum -y install yum-plugin-list-data

$ yum -C list-groups ftp
Loaded plugins: fastestmirror, list-data
==================== Available Packages ====================
Console internet tools      1 (100%)
list-groups done

或者,如果您不允许安装插件,请保存以下脚本并尝试使用一个参数运行它,即您尝试查找的包的名称:

#!/bin/sh

search_name=$1
LANG=C yum grouplist -v | grep "^  " | awk -F'(' '{print $1}' | sed -e 's/^ *//' | while     read line
do
    if [ "${search_name}" != "" ]; then
        yum groupinfo "${line}" | grep -q "^ *${search_name}$"
        if [ $? -eq 0 ]; then
            echo ${line}
            break
        fi
    fi
done

答案 2 :(得分:1)

我不知道yum,但请记住它位于rpm之上。您正在寻找的rpm命令是:

rpm -q --qf %{group} yourRPM

您可能希望在最后添加\n,具体取决于您所做的事情:

[root@Niflheim ~]# rpm -q --qf %{group} setarch
System Environment/Kernel[root@Niflheim ~]# rpm -q --qf "%{group}\n" setarch
System Environment/Kernel
[root@Niflheim ~]#