2014-01-21 106 views
2

有沒有辦法問問哪個組包含給定的包?我知道如何問一個給定組中的軟件包,並且可以編寫一個快速腳本來瀏覽所有組,但是擁有比這更簡單的機制會更好。哪個yum組包含給定的包?

回答

6

如果你只是在尋找由人來使用的「簡單的機制」,並不需要某種腳本或這樣的,你可能會與這一個獲得由:

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

當然,更換sendmail-cf與您感興趣的包名稱。

+0

謝謝,是的,只是人類可用是我正在尋找,所以這符合法案! –

0

我不知道yum,但請記住它位於rpm之上。您正在尋找的rpm命令是:

rpm -q --qf %{group} yourRPM 

你可能想在最後加一個\n,這取決於你是高達:

[[email protected] ~]# rpm -q --qf %{group} setarch 
System Environment/Kernel[[email protected] ~]# rpm -q --qf "%{group}\n" setarch 
System Environment/Kernel 
[[email protected] ~]# 
+1

有趣的想法,但它不會返回與'yum grouplist'給出的任何內容相匹配的羣組名稱。 –

+0

抱歉,錯誤的「羣組」! –

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