I've got a chef recipe to bootstrap some worker nodes that I've been using for quite some time, and for the first time in a while I needed to increase the size of my worker pool, but found that the new nodes were not bootstrapping properly due to the yum error:
Error: Package: cyrus-sasl-md5-2.1.26-21.el7.x86_64 (abc-os)
Requires: cyrus-sasl-lib(x86-64) = 2.1.26-21.el7
Installed: cyrus-sasl-lib-2.1.26-20.el7_2.x86_64 (@abc-os)
cyrus-sasl-lib(x86-64) = 2.1.26-20.el7_2
Where abc-os
is our internal repo so we can lock down package versions. Naturally I assumed that this was the problem, but on checking into the repo I found that the complete set of packages for both 21.el7
and 20.el7_2
are present.
Furthermore running yum list available cyrus-sasl-md5
gives:
cyrus-sasl-md5.i686 2.1.26-20.el7_2 abc-os
cyrus-sasl-md5.x86_64 2.1.26-21.el7 abc-os
And querying the repo's sqlite file in /var/cache/yum/x86_64/7/abc-os/gen
returns:
sqlite> SELECT name, arch, version, epoch, release FROM packages WHERE name LIKE 'cyrus%' ORDER BY arch, version, epoch, release, name;
cyrus-sasl-lib i686 2.1.26 0 17.el7
cyrus-sasl-lib i686 2.1.26 0 20.el7_2
cyrus-sasl-md5 i686 2.1.26 0 20.el7_2
cyrus-sasl-pla i686 2.1.26 0 20.el7_2
cyrus-sasl x86_64 2.1.26 0 17.el7
cyrus-sasl-dev x86_64 2.1.26 0 17.el7
cyrus-sasl-lib x86_64 2.1.26 0 17.el7
cyrus-sasl x86_64 2.1.26 0 20.el7_2
cyrus-sasl-dev x86_64 2.1.26 0 20.el7_2
cyrus-sasl-lib x86_64 2.1.26 0 20.el7_2
cyrus-sasl-md5 x86_64 2.1.26 0 20.el7_2
cyrus-sasl-pla x86_64 2.1.26 0 20.el7_2
cyrus-sasl x86_64 2.1.26 0 21.el7
cyrus-sasl-dev x86_64 2.1.26 0 21.el7
cyrus-sasl-lib x86_64 2.1.26 0 21.el7
cyrus-sasl-md5 x86_64 2.1.26 0 21.el7
cyrus-sasl-pla x86_64 2.1.26 0 21.el7
At the moment I'm stumped as to why this is happening, and what to do to dig into this further.
For reference, the OS is CentOS 7.2 x86_64.
cyrus-sasl-md5-2.1.26-21.el7.x86_64 requires cyrus-sasl-lib to be on the version 2.1.26-21 but you have another version (2.1.26-20).
I think you should uninstall cyrus-sasl-lib and reinstall with the good version.
The problem turned out to be that someone had configured the yum version lock configuration for only
cyrus-sasl-lib
but none of the other cyrus packages, which is what seems to have caused yum to be unable to resolve the versions correctly.Probably the best option would be to add in the other packages with matching versions, but since these particular packages are of little consequence to the current incarnation of this platform I just removed
cyrus-sasl-lib
from the version lock altogether. Now yum installs/upgrades everything to latest and the instances bootstrap themselves without issue again.