2011-01-07 28 views
8

Có thể cho một gói rpm duy nhất thuộc về một số nhóm không?Một số nhóm trong gói RPM

Trong file spec bạn có thể thiết lập nhóm gói:

Nhóm: Hệ thống Môi trường/cơ sở

Những gì tôi cần là để có thể thiết lập nhiều nhóm cho gói này (như System|Util|MyCompanyName) - chúng sẽ giống như các thẻ được gán cho gói.

Khi gói được cài đặt tôi muốn truy vấn nó như

rpm -q --group System 

hoặc

rpm -q --group MyCompanyName 

và trong cả hai trường hợp tôi sẽ thấy gói của tôi (và những người khác thuộc nhóm này)


Chỉnh sửa:

Nhiều gói có thể thuộc về nhóm MyCompanyName, nhưng chỉ một số gói có thể được cài đặt. Tôi cần một cách để phân biệt các gói của chúng tôi từ gói hệ thống Linux - Tôi đang lên kế hoạch để làm điều đó bằng cách sử dụng tên nhóm


tôi đã cố gắng đưa vài Group: dòng, nhưng nó chỉ sử dụng cuối cùng. Mọi thứ sau khi Group: dường như được lấy làm một chuỗi và tôi không thể tìm thấy cách tách chúng.

Một giải pháp mà tôi có thể nghĩ ra được cách đặt công cụ này như PROVIDES và sau đó để truy vấn

rpm -q --whatprovides System 

nhưng tôi không thích nó theo cách này.

Có cách nào khác để thực hiện chức năng được yêu cầu không?

Trả lời

6

Các cách chính xác để xác định tên công ty của bạn là thông qua thẻ Vendor như thế này:

Vendor: Yoyodyne, Inc. 

Để có được một danh sách các gói bởi nhà cung cấp bạn có thể chạy lệnh này:

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

Một RPM chỉ có thể thuộc về một nhóm. Hơn nữa, các nhóm cho phép được xác định bởi phân phối.Ví dụ, đây là danh sách các nhóm hợp lệ cho Mandriva:

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

Để tìm các nhóm hợp lệ cho một phân phối đặc biệt mà bạn thường phải chạy trình quản lý gói cho distro đó và nhìn vào danh sách.

RPM không được định nghĩa gần như định dạng gói Debian. Dường như không có tài liệu chính thức hoặc kỹ lưỡng.

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

+0

có, nó sẽ hoạt động với tên công ty, thật đáng buồn mặc dù rpm không có cách thuận tiện để truy vấn bằng tham số này –

+0

vì giải pháp của bạn là duy nhất tôi có thể sử dụng như một câu trả lời –

3

AFAIU, RPM phải thuộc về một Nhóm duy nhất trong tệp GROUPS của RPM hoặc có Nhóm không xác định. Không thể có nhiều hơn một.

2

Bạn có thể xác định các nhóm ở cấp độ repo thay vì mức gói sử dụng yum groups. Khi bạn đã xác định nhóm của mình, bạn có thể sử dụng lệnh 'yum groupinfo' để xem các gói trong mỗi nhóm.

+0

đó là thú vị, tôi sẽ kiểm tra xem chúng ta có thể sử dụng nó, nhờ –

+0

tiếc là nó không giúp bạn để xem những gì gói tùy chọn từ nhóm nhất định được cài đặt trên hệ thống, do đó, nó thuận tiện chủ yếu khi bạn có các nhóm tĩnh trong đó tất cả các gói phải được cài đặt –

Các vấn đề liên quan