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