Everything You Need to Know About the New IBM i RPM Repositories
You’re probably familiar with IBM’s internet-based distribution technique for many open-source packages. As of today, IBM is restructuring how and where things get published. In today’s post, I’ll discuss why a change is needed and what actions you need to take in order to continue receiving updates.
I will be using the word “repository” a lot, so let’s review that concept. The open-source packages are bundled and shipped in a repository. A repository is a basic web-hosted archive that consists of two parts:
- A directory with a set of RPM packages (.rpm files) within it
- Metadata about the RPM packages
In other words, a repository (often shortened to “repo”) is just a directory on a web server!
Why Is a Change Needed?
Until recently, IBM delivered all the open-source RPM packages in a single repository. For several years, this approach served the community well. It was the simplest possible answer for people consuming open-source packages.
The singular repository approach has its issues, however. For starters, IBM i clients have diverse constraints in terms of network topology, DNS setup or internet access. As a results, customers have needed to manually modify configuration files to switch protocols, use hardcoded IP addresses or circumvent other connectivity problems.
Most notably, though, a single repository is an insufficient approach when supporting multiple releases of the OS. RPMs are often built with the earliest OS release that is supported. As releases fall out of support, RPMs are rebuilt on a newer version of the OS. For example, the singular repository initially hosted packages built for IBM i 7.2. These packages would run on IBM i 7.2 or newer. If that repository contained IBM i 7.3 builds, it would actively break current 7.2 users.
Beyond that, some packages have minimum release requirements. Other packages might have builds for multiple releases, being able to exploit new features with the newer cut of the OS.
All in all, it became apparent that:
- Users needed a better way to circumvent networking/connectivity issues
- Packages need to be distributed and managed on a per-release basis
What Are the New IBM i RPM Repositories?
To address these concerns, IBM has sunset the original RPM repository. Since the beginning of 2022, IBM actively maintains several new repositories. You will see them as:
- IBM i Base: hosts RPMs for the oldest release of IBM i supported by the RPM ecosystem. Originally, this pointed to the same 7.2 repository we have used since the beginning, but the just released “ibmi-repos” update will now point to a new IBM i 7.3 repository. When the time is right, it will point to a new IBM i 7.4 repository!
- IBM i Release: hosts RPMs built specifically for your current OS level. A version of the IBM i release repo exists for every supported IBM i release. If you upgrade your IBM i OS, this will automatically point at the new version.
The “ibmi-repos” package now also delivers “unsecure” versions of these, which can be used for easily circumventing some common connectivity/configuration issues.
What Should I Do Now?
The definitions for these four new repositories are delivered in a new RPM package called “ibmi-repos.” So, configuring these new repositories is as simple as “yum install ibmi-repos” (or doing the equivalent from the Access Client Solutions UI).
The process for performing installations or updates would be summarized as:
- Install the “ibmi-repos” package, which will configure the new repositories
- Upgrade “ibmi-repos” package to the latest version to make sure you have the correct and up-to-date configuration
- Perform the install or upgrade, which will now use the new repositories
Note that if you install the open-source environment (often referred to as the “bootstrap”) after the publication of this article, you should already have the new repos configured. It is still recommended to make sure that “ibmi-repos” is up to date.
The “ibmi-repos” package does not uninstall the old (sunset) repository. Some opt to do so manually by simply deleting the file /QOpenSys/etc/yum/repos.d/ibm.repo (don’t do this if you have customized this file with your own repository information).
Note that if your version of IBM i falls out of support, your “IBM i Base” repository for your OS level will still be around and usable. Newer users will be ushered to a different base repo appropriate for a newer release.
What if I Don’t Take Action?
If you don’t install the “ibmi-repos” package, everything will continue to work as it always has, but the package manager will only know about the old (sunset) repository. As a result, you will not see any package updates. In a sense, you will be “stuck” in September 2022!
Closing Thoughts on the New IBM i RPM Repositories
Believe it or not, the IBM i team now has five years of experience delivering things through RPM packages! The new multi-repository strategy addresses many of the client pain points we’ve seen along the way, and I hope your experience is as seamless as possible.
To summarize the main points:
- The old, singular IBM repository has been sunset. It’s still available, but will be receiving no updates.
- The “IBM i Base” repository is changing to an IBM i 7.3 repo for all users running IBM i 7.3 and newer
- It’s best to remain on a supported IBM i release and make sure that your “ibmi-repos” package is installed and up to date in order to receive the latest updates.
- IBM i 7.2 users should be unaffected, except that no more updates will be available
If you have any trouble getting the “ibmi-repos” package installed, I invite you to visit the troubleshooting section of our open-source documentation site. Feel free to contact IBM for support if you still need assistance.