多年来,我作为爱好者管理员解决了许多依赖关系问题:我只是删除了一些包,直到整个事情得到解决,或者(如果后果会很大)等到问题自行解决。
# cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)
现在我想了解以下内容的含义:
# 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
我想系统ImageMagick.x86_64
将从0:6.7
to更新,0:6.9
但它无法做到。然后我的猜测:删除0:6.7
会删除libMagickCore.so.5
,但最后一个是需要的php72w-pecl-imagick-3.4.3-1.2.w7.x86_64
……那为什么不直接留libMagickCore.so.5
在系统中呢?可能是因为需要一个新的,但我看不出是哪一个......
我真的不明白幕后发生了什么。
您可以从此示例中解释如下错误:
首先,
Package:
是受影响的包。因为 repo 名称以 为前缀@
,所以包已经安装。这个包声明它Requires: libMagickCore.so.5()(64bit)
。该软件包
Removing:
显示它提供libMagickCore.so.5()(64bit)
.软件包
Updated By:
(尚未安装)不提供它,如Not found
.这意味着尝试升级
ImageMagick
将删除libMagickCore.so.5()(64bit)
并因此导致php72w-pecl-imagick
中断。这个问题的根本原因是升级后的 ImageMagick 包不再提供 libMagickCore.so.5 或 libMagickWand.so.5。新包有 libMagickCore.so.6 和 libMagickWand.so.6。
但是您的第三方 PHP 包依赖于 libMagickCore.so.5 和 libMagickWand.so.5。为了解决这个问题,这些包的维护者需要针对新版本的 ImageMagick 重新构建它们。
这种 ABI 更改通常不会发生在 CentOS(或它所基于的 RHEL)上,尽管它在过去至少发生过一次(这几乎是一场灾难)。当它发生时,发行版还会重建该发行版中任何受影响的软件包,但第三方也必须重建他们的软件包,并且更新将被中断,直到他们这样做。