0

I would like to upgrade RPM to version 4.16 on RedHat 8. I currently have 4.14.3 installed.

When I try to upgrade, I get "Nothing to do":

$ sudo yum -y upgrade rpm
Updating Subscription Management repositories.
Last metadata expiration check: 0:07:41 ago on Wed 12 Oct 2022 08:51:51 AM PDT.
Dependencies resolved.
Nothing to do.
Complete!

I thought maybe I could specify a URL to RPM, but according to this answer, RHEL RPM repos are not public.

How can I upgrade to RPM 4.16 on my RedHat 8?

1
  • 1
    Have you purchased a subscription for your REL installation? Does this post help on deciding if you need a subscription? If you are running a personal development system, perhaps you can use the individual development license. Do you really need REL or would an alternative like OEL, Rocky, or Alma work?
    – doneal24
    Oct 12, 2022 at 17:15

2 Answers 2

3

Stable distributions like RHEL usually don't provide the latest releases of software and only backport bugfixes and fixes for security issues. If RPM 4.14 is the latest version available in the RHEL 8 repositories (it is the version available in CentOS 8 Stream repositories, so it is most likely the latest version available for RHEL 8 too) that is the version of RPM you are stuck with.

4.16 is available on RHEL 9 (again, based on CentOS 9 Stream) so if you need 4.16 for some reason, I suggest upgrading to RHEL 9.

(You can try to install newer version of RPM manually from source, but I would not recommend it, manually upgrading low level system tools and libraries can easily break your system.)

3

It's not about RHEL.

Here's the deal about most Linux distros. They are not a set of some loose components thrown in together.

They are actually quite a strict set of packages with intricate dependencies, so for a distro A version N you can only have have X Y and Z versions of components, otherwise your system will stop functioning because dependencies will be broken.

Microsoft solved this issue a long time ago with Windows Vista using WinSxS, unfortunately it won't work for Linux for the following reasons:

  • It's maddenly expensive to maintain
  • You need to take care of build time dependencies and Linux distros only have a single /usr/include directory
  • Microsoft has a 100% stable in terms of API/ABI core components such as ntoskrnl and user32, Linux doesn't. Glibc adds new APIs almost each release and that makes reconciling all the libraries a near impossible task.

RPM is such a core component, you don't replace/update it willy-nilly. You still can compile a new version from sources and install it to e.g. /usr/local or /opt/rpm but using it with your existing RPM database could result in your RPM database being rendered broken for the existing RPM package manager.

You must log in to answer this question.

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