有没有一种方法可以询问yum哪些组包含给定的软件包?我知道如何询问哪些组中存在某个软件包,并且可以编写一个快速脚本来遍历所有组,但有一个比那更简单的机制会更好。
如果你只是想要一个“更简单的机制”供人类使用,而不需要在某种脚本中使用它,那么你可以尝试使用这个:
yum groupinfo '*' | less +/sendmail-cf
sendmail-cf
替换为您感兴趣的软件包名称。$ 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
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 ~]#