Несколько групп в пакете RPM - PullRequest
8 голосов
/ 07 января 2011

Возможно ли, чтобы один пакет rpm входил в несколько групп?

В файле спецификации вы можете указать группу пакетов:

Группа: Системная среда/ Base

Мне нужно установить несколько групп для этого пакета (например, System|Util|MyCompanyName) - они будут похожи на теги, назначенные пакету.

Когда пакет установлен, я хочу запросить его как

rpm -q --group System

или

rpm -q --group MyCompanyName

, и в обоих случаях я должен увидеть свой пакет (и другие, принадлежащиеэта группа)


Редактировать:

Многие пакеты могут принадлежать группе MyCompanyName, но могут быть установлены только несколько.Мне нужен способ отличить наши пакеты от системных пакетов Linux - я планировал сделать это, используя имя группы


Я попытался поместить несколько строк Group:, но он использует только последниеодин.Все, что после Group:, кажется, воспринимается как одна строка, и я не мог найти способ разделить их.

Другое решение, о котором я мог подумать, это поместить этот материал как PROVIDES и затем запросить

rpm -q --whatprovides System

но мне это не нравится.

Есть ли другой способ выполнить запрошенную функциональность?

Ответы [ 3 ]

6 голосов
/ 15 января 2011

Правильный способ указать название вашей компании - через тег 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

3 голосов
/ 07 января 2011

AFAIU, RPM должны принадлежать одной группе в файле GROUPS RPM или не указывать группу.Не может иметь более одного.

2 голосов
/ 14 января 2011

Вы можете определить группы на уровне репо, а не на уровне пакета, используя yum groups . После того, как вы определили свои группы, вы сможете использовать команду 'yum groupinfo', чтобы увидеть пакеты в каждой группе.

...