RPM spec to require specific RHEL release

2019-05-29 16:51发布

问题:

In an RPM spec file, what is a good way of requiring a minimum RHEL distribuition? I tried to make RHEL 6.3 a prerequisite using:

Requires: redhat-release-server-6Server >= 6.3

This blocks the install on 6.2 and 6.3 with:

error: Failed dependencies:
    redhat-release-server-6Server >= 6.3 is needed by my.package-1.2.0-0.x86_64

I also tried:

Requires: redhat-release >= 6.3

which did not fail the dependecy check on either 6.2 or 6.3.

回答1:

The redhat-release-server-6Server-6.3.0.3.el6.x86_64 (on my system) seems to be a good candidate as a prerequisite. See http://rhn.redhat.com/errata/RHEA-2012-0971.html . What is not obvious for a novice looking at the package name is that "6Server" is actually the package version. "rpm -q --info" make this clear, though:

$ rpm -q redhat-release-server-6Server --info
Name        : redhat-release-server        Relocations: (not relocatable)
Version     : 6Server                           Vendor: Red Hat, Inc.
Release     : 6.3.0.3.el6                   Build Date: Wed 30 May 2012 11:19:03 AM PDT
Install Date: Tue 02 Oct 2012 09:48:26 AM PDT      Build Host: x86-003.build.bos.redhat.com
Group       : System Environment/Base       Source RPM: redhat-release-server-6Server-6.3.0.3.el6.src.rpm
Size        : 38585                            License: GPLv2
Signature   : RSA/8, Wed 30 May 2012 12:19:55 PM PDT, Key ID 199e2f91fd431d51
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : Red Hat Enterprise Linux Server release file
Description :
Red Hat Enterprise Linux Server release files

So the correct directive is:

Requires: redhat-release-server >= 6Server-6.3


回答2:

I would suggest that instead of required specific version of RHEL, Require the dependency that only appear in the target version (e.g. RHEL 6.3)

Following not only cause problem you mentioned, but also block the installation for the client and workstation users (6Client and 6Workstation)

Requires: redhat-release-server-6Server >= 6.3