2

After upgrading an AIX system using mksysb migration via NIM, the AIX-rpm virtual package was left behind at the previous AIX level:

$ oslevel -r
7100-04
$ rpm -q AIX-rpm
AIX-rpm-6.1.7.0-7

This prevents the installation of other RPMs that have a dependency on a certain AIX-rpm version, such as:

$ sudo rpm -Uvh libgcc-6.3.0-2.aix7.1.ppc.rpm
error: failed dependencies:
        AIX-rpm >= 7.1.0.0 is needed by libgcc-6.3.0-2

You can test this situation beforehand by querying the package for its dependencies:

$ rpm -qp --requires libgcc-6.3.0-2.aix7.1.ppc.rpm
AIX-rpm >= 7.1.0.0
AIX-rpm < 7.2.0.0
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

... or by using the rpm --test option:

$ sudo rpm -Uvh --test libgcc-6.3.0-2.aix7.1.ppc.rpm
error: failed dependencies:
        AIX-rpm >= 7.1.0.0 is needed by libgcc-6.3.0-2

How can I install or upgrade AIX-rpm to the correct level so that I can install additional RPMs without forcing --nodeps?

2

To update the AIX-rpm virtual package to the correct OS level, run:

$ sudo /usr/sbin/updtvpkg
Please wait...

The AIX-rpm virtual package will then be upgraded:

$ rpm -q AIX-rpm
AIX-rpm-7.1.4.31-8
1

AIX-rpm is a "virtual" package which reflects what has been installed on the system by installp. It is created by the /usr/sbin/updtvpkg script when the rpm.rte is installed, and can be run anytime the administrator chooses (usually after installing something with installp that is required to satisfy some dependency by an RPM package).

Since AIX-rpm has to have some sort of version number, it simply reflects the level of bos.rte on the system where /usr/sbin/updtvpkg is being run. It's just informational - nothing should be checking the level of AIX-rpm.

AIX doesn't just automatically run /usr/sbin/updtvpkg every time that something gets installed or deinstalled because on some slower systems with lots of software installed, /usr/sbin/updtvpkg can take a LONG time.

If you want to run the command manually:

/usr/sbin/updtvpkg

If you get an error similar to "cannot read header at 20760 for lookup" when running updtvpkg, run a rpm rebuilddb:

rpm --rebuilddb

Once you run updtvpkg, you can run a rpm -qa to see your new AIX-rpm package.

https://unixhealthcheck.com/blog?id=305

  • 1
    Thank you for your answer! I noted that libgcc cared about the AIX-rpm level: AIX-rpm >= 7.1.0.0 is needed by libgcc-6.3.0-2. It's true that bos.rte changed (due to the NIM migration upgrade); thanks for pointing that out. – Jeff Schaller Mar 15 at 17:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.