Es daudzu gadu laikā esmu atrisinājis daudzas atkarības problēmas kā administrators administrators: tikko noņemu daļu līdz visa lieta tiek atrisināta vai (ja sekas būtu bijušas lielas) gaidīju, kamēr problēma pati atrisināsies.
# cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)
Tagad es gribētu saprast, ko nozīmē šāds:
# 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
Es domāju, ka sistēma tiks atjaunināta ImageMagick.x86_64
no 0: 6,7
līdz 0: 6,9
, taču tas to nespēj.
Tad mans minējums: noņemot 0: 6.7
, tiktu noņemts libMagickCore.so.5
, bet pēdējais ir vajadzīgs php72w-pecl-imagick-3.4.3-1.2.w7 .x86_64
... tad kāpēc gan ne tikai atstāt sistēmā libMagickCore.so.5
? iespējams, tāpēc, ka ir vajadzīgs jauns, bet es neredzu, kurš ...
Es tiešām nesaprotu to, kas notiek aiz ainas.
Вы можете интерпретировать ошибки следующим образом из этого примера:
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
Во-первых, Пакет:
является затронутым пакетом. Поскольку имя репозитория имеет префикс @
, пакет уже установлен. Этот пакет заявляет, что он Требуется: libMagickCore.so.5()(64bit)
.
Удаление пакета :
показывает, что он предоставляет libMagickCore.so.5()(64bit)
.
Пакет Обновлено:
(который еще не установлен) не предоставляет его, как показано Не найдено
.
Это означает, что попытка обновления ImageMagick
приведет к удалению libMagickCore.so.5()(64bit)
и, таким образом, к поломке php72w-pecl-imagick
. .
Основная причина этой проблемы заключается в том, что обновленный пакет ImageMagick больше не предоставляет libMagickCore.so.5 или libMagickWand.so.5. В новом пакете есть libMagickCore.so.6 и libMagickWand.so.6.
[root@vmtest-centos7 ~]# rpm -q --provides ImageMagick
ImageMagick = 6.9.10.68-3.el7
ImageMagick(x86-64) = 6.9.10.68-3.el7
libMagickCore-6.Q16.so.6()(64bit)
libMagickWand-6.Q16.so.6()(64bit)
....
Но ваши сторонние пакеты PHP зависят от libMagickCore.so.5 и libMagickWand.so.5. Чтобы решить эту проблему, сопровождающий этих пакетов должен пересобрать их с новой версией ImageMagick.
Такое изменение ABI обычно не происходит с CentOS (или RHEL, на котором оно основано), хотя это было сделано по крайней мере один раз в прошлом (что было довольно близко к катастрофе) . Когда это действительно происходит, дистрибутив также пересобирает все затронутые пакеты в этом дистрибутиве, но третьи лица также должны пересобирать свои пакеты, и обновление будет прервано, пока они этого не сделают.