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.
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
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