【问题标题】:How to determine the OS version for which was compiled rpm?如何确定为其编译 rpm 的操作系统版本?
【发布时间】:2010-06-17 11:25:38
【问题描述】:

如何确定编译 rpm 数据包的 Linux 版本(发行版)?

【问题讨论】:

  • 你的意思是编程还是一般?
  • 通常在名称和次要版本号中,例如.el5.对于 RHEL5 或兼容的 .fc13。对于 Fedora 13 等。它也可能在签名密钥名称中(例如“CentOS 5 签名密钥”或类似名称)。除此之外,我认为它不会被编码。

标签: linux rpm


【解决方案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

【讨论】:

  • 差不多。我认为 %{OS} 标签是想要的,所以这可能会更好...rpm -q -p myfiletotest.rpm --queryformat '%10{NAME} %10{OS} %10{VERSION} %10{RELEASE} %10{ARCH}\n'
【解决方案2】:

没有这种方法可以从文件的内容中确定操作系统名称和版本。

通常一个 RPM 文件名包含所有这些细节。根据 RPM 文件命名约定,文件名必须是这样的:

name-version-release.architecture.rpm

详情请查看link

【讨论】:

  • 这些都不是操作系统名称和版本,但是?在实践中,它通常设置在发布字段中,例如release=1.el5,但该页面上没有描述。
【解决方案3】:

您可以使用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

操作系统名称是此输出中的第二个字段。 RPM 不区分操作系统的版本。你只会看到 'linux'、'aix'、'darwin' 等等 - 而不是 'centos-6'。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    相关资源
    最近更新 更多