0

Can I install rpm across minor releases within a major release of RHEL, such as RHEL 8.4 packages on RHEL 8.2 ? (e.g. of my scenario is provided at the end)

I see some info regarding compatibility when updating rpm's here: https://access.redhat.com/articles/54483

It says "Selective updates can be installed after an initial installation of a major or minor release using the tools provided, such as dnf, yum or up2date"

But if I install 8.4 rpm on 8.2 directly, will that be compatible ?

E.g.

Running yum list curl --showduplicates on RHEL 8.2, I see:

curl.x86_64         7.61.1-14.el8          repo
curl.x86_64         7.61.1-14.el8_3.1      repo
curl.x86_64         7.61.1-18.el8_4.1      repo

yum install curl will install latest available one - curl-7.61.1-18.el8_4.1 on RHEL 8.2

So, is something like this compatible (for any app/command), or I do need to install el8_2 rpm (which is currently not available in the repo) ?

1 Answer 1

0

Yes, this is compatible. At worst it will pull in some other packages from 8.4, but in most cases it won’t.

I’m not aware of a specific document which explicitly states exactly the above, but the Red Hat Enterprise Linux Life Cycle says

During the life cycle of a major Red Hat Enterprise Linux release, Red Hat makes commercially reasonable efforts to maintain binary compatibility for the core runtime environment across all minor releases and errata advisories.

and perhaps more practically, the Red Hat Enterprise Linux 8 Application Compatibility Guide says, concerning compatibility level 2,

APIs and ABIs are stable within the lifetime of a single major release. Compatibility level 2 application interfaces will not change from minor release to minor release and can be relied upon by the application to be stable for the duration of the major release. Compatibility level 2 is the default for packages in Red Hat Enterprise Linux 8. Packages not identified as having another compatibility level may be considered compatibility level 2.

All this means that a package shipped in 8.4, in compatibility level 2 (or 1), will work with packages from previous minor releases. It can happen that a package from a given minor release needs other packages from the same minor release; in such cases, the package dependencies will be defined appropriately, and other packages will be upgraded as needed. The Compatibility Guide provides links with further information, including lists of exceptions (packages in compatibility level 3 or 4). curl is explicitly listed in compatibility level 2.

Incidentally, your package list is out-dated; the latest curl on RHEL 8 is version 7.61.1-25, fixing a number of vulnerabilities since 7.61.1-18.

3
  • Thanks for detailed answer Stephen! What about other packages, say Java ? For RHEL7 I see it's listed under compatibility level 2 (access.redhat.com/articles/rhel-abi-compatibility), but it seems different for RHEL8.
    – Andy
    Commented Jan 23, 2023 at 1:38
  • The section on compatibility level 3 has a link to RHEL 8 applications streams; you’ll find the various versions of OpenJDK listed there with their support dates. Commented Jan 23, 2023 at 5:20
  • Great, this provides the required info ! I'm accepting the answer.
    – Andy
    Commented Jan 24, 2023 at 0:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .