首页 文章

RPM包中的几个组

提问于
浏览
8

Is it possible for single rpm package to belong to several groups?

在spec文件中,您可以设置包组:

组:系统环境/基础

我需要的是能够为这个包设置几个组(如 System|Util|MyCompanyName ) - 它们就像分配给包的标签 .

安装包时我想查询它

rpm -q --group System

要么

rpm -q --group MyCompanyName

在这两种情况下,我都应该看到我的包裹(以及属于这个群体的其他人)


Edit:

Many packages may belong to MyCompanyName group, but only few may be installed. I need a way to differentiate our packages from linux system packages - I was planning to do it using the group name


我尝试了几个 Group: 行,但它只使用了最后一行 . Group: 之后的所有内容似乎都被视为一个字符串,我找不到分割它们的方法 .

我能想到的另一个解决方案是将这些东西放在 PROVIDES 然后进行查询

rpm -q --whatprovides System

但我不喜欢这样 .

Is there other way to accomplish the requested functionality?

3 回答

  • 6

    AFAIU,RPM应属于RPM的GROUPS文件中的单个组,或者未指定组 . 不能有多个 .

  • 2

    您可以使用yum groups在repo级别而不是包级别定义组 . 定义组后,您应该能够使用'yum groupinfo'命令查看每个组中的包 .

  • 3

    指定公司名称的正确方法是通过Vendor标记,如下所示:

    Vendor: Yoyodyne, Inc.
    

    要按供应商获取软件包列表,您可以运行以下命令:

    rpm -qa --qf '%{NAME} %{VENDOR}\n' | grep -v Yoyodyne
    

    RPM只能属于一个组 . 此外,允许组由分布定义 . 例如,以下是Mandriva的有效组列表:

    http://wiki.mandriva.com/en/Development/Packaging/Groups

    要查找特定分发的有效组,您必须经常运行该发行版的包管理器并查看列表 .

    RPM并不像Debian包格式那样定义得那么好 . 似乎没有官方或全面的文件 .

    http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html

相关问题