8

单个 rpm 包是否可以属于多个组?

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

组:系统环境/基础

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

安装软件包后,我想像这样查询它

rpm -q --group System

或者

rpm -q --group MyCompanyName

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


编辑:

许多包可能属于 MyCompanyName 组,但可能安装的只有少数。我需要一种方法来区分我们的包和 linux 系统包 - 我打算使用组名来做


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

我能想到的另一个解决方案是将这些东西作为PROVIDES然后查询

rpm -q --whatprovides System

但我不喜欢这样。

还有其他方法可以完成请求的功能吗?

4

4 回答 4

7

指定公司名称的正确方法是通过供应商标签,如下所示:

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

于 2011-01-14T23:59:32.700 回答
3

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

于 2011-01-07T17:55:18.983 回答
2

您也许可以使用yum groups在 repo 级别而不是包级别定义组。一旦你定义了你的组,你应该可以使用'yum groupinfo'命令来查看每个组中的包。

于 2011-01-14T13:55:31.947 回答
1

这是一篇旧文章,但它仍然出现在 Google 上;

现在至少 OpenSUSE 使用 Group: 字段作为空格分隔的标签字段而不是层次树,因此对于 SUSE 包,您可以简单地用空格分隔您希望包所属的标签。

有关详细信息,请参阅:https ://en.opensuse.org/openSUSE:Package_group_guidelines 。

于 2021-10-14T10:43:04.490 回答