【问题标题】:Which yum group(s) contain a given package?哪个 yum 组包含给定的包?
【发布时间】:2014-01-21 11:56:48
【问题描述】:

有没有办法询问 yum 哪些组包含给定的包?我知道如何询问给定组中有哪些包,并且可以编写一个快速脚本来搜索所有组,但最好有一个比这更简单的机制。

【问题讨论】:

    标签: redhat rpm yum


    【解决方案1】:

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

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

    当然,把sendmail-cf替换成你感兴趣的包名。

    【讨论】:

    • 谢谢,是的,我一直在寻找人类可用的东西,所以这符合要求!
    【解决方案2】:

    你可以通过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
    

    【讨论】:

      【解决方案3】:

      我不知道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 ~]#
      

      【讨论】:

      • 有趣的想法,但它没有返回与 'yum grouplist' 给出的任何内容相匹配的组名
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 2018-11-13
      • 2011-01-31
      相关资源
      最近更新 更多