2010-06-17 99 views
0

如何確定編譯rpm數據包的Linux版本(分發版)?如何確定編譯rpm的操作系統版本?

+0

你的意思是編程或一般? – 2010-06-17 11:29:09

+0

它通常在名稱和次要版本號中,例如.el5。對於RHEL5或兼容的.fc13。對於Fedora 13等等。它也可能在簽名密鑰名稱中(例如「CentOS 5簽名密鑰」或類似名稱)。除此之外,我不認爲它被編碼。 – Rup 2010-06-17 11:41:45

回答

1

沒有這樣的方法來從文件的內容中確定操作系統名稱和版本。

通常,RPM文件名包含所有這些詳細信息。據RPM文件命名約定的文件名必須是這樣的:

name-version-release.architecture.rpm 

請查詢詳情這個link

+0

這些都不是操作系統的名稱和版本,但?實際上,它通常是在釋放字段中設置的,例如, release = 1.el5,但這並未在該頁面上描述。 – Rup 2010-06-17 12:23:43

1

我相信這是你所追求的。

$ rpm -q gnome-speech --queryformat '%10{NAME} %20{VENDOR} %20{RELEASE} %20{ARCH}\n' 
    gnome-speech Red Hat, Inc.    1.fc6     i386 

$ rpm -q hwdata --queryformat '%10{NAME} %20{VENDOR} %20{RELEASE} %20{ARCH}\n' 
    hwdata  Red Hat, Inc.    1.el5    noarch 

有很多漂亮的位可以用queryformat去後,看到this guide爲參考的。
關於rpm-philosophy-multi-architecture的一般參考。

+0

差不多。我認爲%{OS}標記是需要的,所以這可能會更好... 'rpm -q -p myfiletotest.rpm --queryformat'%10 {NAME}%10 {OS}%10 {VERSION} %10 {RELEASE}%10 {ARCH} \ n'' – 2016-09-15 00:23:34

0

您可以使用rpm -q從RPM中的OS標籤獲取OS數據,但是您需要指定查詢格式,因爲它不在正常的-i輸出中。您可以使用-p來指代測試的特定RPM文件。

$ rpm -q -p myfiletotest.rpm --queryformat '%10{NAME} %10{OS} %10{VERSION} %10{RELEASE} %10{ARCH}\n' mypackage linux 2.2.10 1_14.el6 x86_64

的OS的名字是在該輸出的第二字段。雖然RPM不區分OS的版本,你只會看到'linux','aix','達爾文'等等,而不是'centos-6'。