哪些yum组包含给定的软件包?

7
有没有一种方法可以询问yum哪些组包含给定的软件包?我知道如何询问哪些组中存在某个软件包,并且可以编写一个快速脚本来遍历所有组,但有一个比那更简单的机制会更好。
3个回答

9

如果你只是想要一个“更简单的机制”供人类使用,而不需要在某种脚本中使用它,那么你可以尝试使用这个:

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

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

谢谢,是的,我只是想要一个人类可用的程序,所以这很合适! - John Rix

4
使用 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

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 ~]#

2
有趣的想法,但它没有返回与“yum grouplist”给出的任何组名匹配的内容。 - John Rix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接