Our Red Hat 7.6 machines have 64-bit and 32-bit libraries installed.
I am scripting an update for all of our machines to run with our post-install scripts to upgrade all of the installed packages.
yum -y upgrade return many errors like this:
printers.pyc conflicts between libstdc++.i686 and libstdc++.x86_64
I have many of these errors on each machine. Each machine is different. I cannot just uninstall 32-bit the conflicting packages, upgrade and then re-install the 32-bit packages. There are just too many.

I've tried:
yum upgrade -x '*.i686' to no avail.

How can I overcome these errors en masse?

Here is one of the error messages.

Transaction check error:
file */path/to/file/*printers.pyc conflicts between attempted installs of libstdc++-4.8.5-36.el7_6.2.i686 and libstdc++-4.8.5-36.el7_6.2.x86_64

Notice that I have the same version available for both 32 and 64 bit packages.
yum provides printers.pyc Returns both the 32 and 64 bit packages as installed:

libstdc++-4.8.5-36.el7.i686 and libstdc++-4.8.5-36.el7.x86_64

Each machine is different. I cannot just uninstall the 32-bit libstdc++ and "call it good." Another machine will have different conflicts.

I need to script this. I have to deal with the entire set of installed RPMs, and just uninstall a few onsie-twosie packages.

Is it possible to upgrade ONLY the 64-bit packages first, the upgrade the 32s? Will that help?

  • 1
    Do you really need the 32-bit packages installed? Usually the best bet is to just remove them. – Michael Hampton Sep 10 '19 at 3:12
  • Yes. I need the 32-bit code. Removed it on another machine and our custom code blew up. Haven't tracked it down yet, so we have to keep the 32-bit stuff. – Scottie H Sep 11 '19 at 14:24
  • Are you actually getting packages directly from RHEL? Or do you have private repos on Satellite or something? This also happens when your private repo is out of sync with the upstream repo, or is missing packages from it. – Michael Hampton Sep 11 '19 at 22:27
  • @MichaelHampton I am on a closed network. I have a static copy of the repos on my network. So, I cannot be "out of sync with the upstream" because there is no upstream. – Scottie H Sep 11 '19 at 22:42
  • Yes, you can be out of sync, and most likely you are. Of course there is an upstream; it's RHEL. Where else could you have gotten the offline packages? – Michael Hampton Sep 11 '19 at 22:45

yum wants thos library versions to match. libstdc++ for example will have to be installed with the exact same version number for both 32 and 64 bit.

Your proposition to remove the 32bit versions and then re-install them won't work; yum won't allow you to reinstall those 32bit versions if they don't match the exact same version number.

What happens is that probably there is an update available for libstdc++.x86_64 and not for libstdc++.i686 in your repositories.

There are multiple tactics possible to solve this:

  • try uninstalling your 32-bit packages (as proposed by @MichaelHampton)
  • investigate why you don't have an upgrade available for both versions (enabling/disabling repositories)
  • tell yum to ignore some packages when updating...
| improve this answer | |
  • I have the same version for 32 & 64 bit RPMs. IS there a way to tell yum to exclude ALL 32-bit packages? – Scottie H Sep 11 '19 at 22:43

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.