Centos 7 atkarību izpratne un risināšana

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.

1
задан 14 June 2020 в 12:15
1 ответ

Вы можете интерпретировать ошибки следующим образом из этого примера:

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, на котором оно основано), хотя это было сделано по крайней мере один раз в прошлом (что было довольно близко к катастрофе) . Когда это действительно происходит, дистрибутив также пересобирает все затронутые пакеты в этом дистрибутиве, но третьи лица также должны пересобирать свои пакеты, и обновление будет прервано, пока они этого не сделают.

2
ответ дан 14 June 2020 в 15:15

Теги

Похожие вопросы