I've resolved many dependencies problems in many years as hobbyist administrator: I just removed some package until the whole thing get resolved or (if the consequences would have been to big) waited until the problem would solve by itself.
# cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)
Now I would like to understand what the following means:
# yum update
Loaded plugins: fastestmirror, replace
Loading mirror speeds from cached hostfile
* base: ...
* epel: ...
* extras: ...
* updates: ...
* webtatic: ...
Resolving Dependencies
--> Running transaction check
---> Package ImageMagick.x86_64 0:6.7.8.9-18.el7 will be updated
--> Processing Dependency: libMagickCore.so.5()(64bit) for package: php72w-pecl-imagick-3.4.3-1.2.w7.x86_64
--> Processing Dependency: libMagickWand.so.5()(64bit) for package: php72w-pecl-imagick-3.4.3-1.2.w7.x86_64
---> Package ImageMagick.x86_64 0:6.9.10.68-3.el7 will be an update
--> Finished Dependency Resolution
Error: Package: php72w-pecl-imagick-3.4.3-1.2.w7.x86_64 (@webtatic)
Requires: libMagickCore.so.5()(64bit)
Removing: ImageMagick-6.7.8.9-18.el7.x86_64 (@base)
libMagickCore.so.5()(64bit)
Updated By: ImageMagick-6.9.10.68-3.el7.x86_64 (base)
Not found
Error: Package: php72w-pecl-imagick-3.4.3-1.2.w7.x86_64 (@webtatic)
Requires: libMagickWand.so.5()(64bit)
Removing: ImageMagick-6.7.8.9-18.el7.x86_64 (@base)
libMagickWand.so.5()(64bit)
Updated By: ImageMagick-6.9.10.68-3.el7.x86_64 (base)
Not found
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
I suppose that the system will update ImageMagick.x86_64
from 0:6.7
to 0:6.9
but it is unable to do it.
Then my guess: removing 0:6.7
would remove libMagickCore.so.5
but the last one is needed by php72w-pecl-imagick-3.4.3-1.2.w7.x86_64
... then why not just leave libMagickCore.so.5
in the system? probably because a new one is needed, but I do not see which one...
I really do not get what is going on behind the scene.
You can interpret the errors as follows from this example:
First, the
Package:
is the affected package. Because the repo name is prefixed with an@
, the package is already installed. This package declares that itRequires: libMagickCore.so.5()(64bit)
.The package
Removing:
shows that it provideslibMagickCore.so.5()(64bit)
.The package
Updated By:
(which is not yet installed) does not provide it, shown byNot found
.This means that attempting to upgrade
ImageMagick
would removelibMagickCore.so.5()(64bit)
and thus causephp72w-pecl-imagick
to break.The root cause of this problem is that the upgraded ImageMagick package no longer provides libMagickCore.so.5 or libMagickWand.so.5. The new package has libMagickCore.so.6 and libMagickWand.so.6.
But your third party PHP packages have a dependency on libMagickCore.so.5 and libMagickWand.so.5. To resolve the problem, the maintainer of those packages needs to rebuild them against the new version of ImageMagick.
This sort of ABI change does not normally happen with CentOS (or RHEL on which it is based), though it has been done at least once in the past (which was fairly close to a disaster). When it does happen, the distro also rebuilds any affected packages in that distribution, but third parties also have to rebuild their packages, and updating will be broken until they do.