YUM жалуется на PyYAML и libyaml в CentOS 5.8

Каждый раз, когда я пытаюсь обновить #sudo yum, я получаю предупреждения о том, что в PyYAML-3.08-4.el5.x86_64 отсутствует зависимость, libyaml-0.so.1()(64bit).

Итак, я сделал некоторые проверки, и оказалось, что libyaml действительно установлен, поэтому мне интересно, что не так с моей установкой PyYAML и libyaml. libyaml был автоматически извлечен PyYAML, что наводит меня на мысль, что с репозиторием происходит что-то странное. Вывод из YUM выглядит следующим образом:

[root@am-web-1 ~]# yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror01.th.ifl.net
 * epel: mirror01.th.ifl.net
 * extras: mirror01.th.ifl.net
 * rpmforge: fr2.rpmfind.net
 * updates: mirror01.th.ifl.net
Excluding Packages from CentOS-5 - Base
Finished
Reducing CentOS-5 Testing to included packages only
Finished
Excluding Packages from CentOS-5 - Updates
Finished
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.7.10-1.el5.rf set to be updated
--> Processing Dependency: libyaml-0.so.1()(64bit) for package: PyYAML
---> Package libyaml.x86_64 0:0.1.4-1.el5.rf set to be updated
---> Package perl-Git.x86_64 0:1.7.10-1.el5.rf set to be updated
--> Finished Dependency Resolution
PyYAML-3.08-4.el5.x86_64 from installed has depsolving problems
  --> Missing Dependency: libyaml-0.so.1()(64bit) is needed by package PyYAML-3.08-4.el5.x86_64 (installed)
Error: Missing Dependency: libyaml-0.so.1()(64bit) is needed by package PyYAML-3.08-4.el5.x86_64 (installed)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest

Итак, мы знаем, что у нас есть проблема, так где же все-таки этот libyaml?

[alexander@am-web-1 ~]$ yum whatprovides "*/libyaml-0.so.1"          
Loaded plugins: fastestmirror
Excluding Packages from CentOS-5 - Base
Finished
Reducing CentOS-5 Testing to included packages only
Finished
Excluding Packages from CentOS-5 - Updates
Finished
libyaml-0.1.2-3.el5.i386 : YAML 1.1 parser and emitter written in C
Repo        : epel
Matched from:
Filename    : /usr/lib/libyaml-0.so.1

libyaml-0.1.2-3.el5.x86_64 : YAML 1.1 parser and emitter written in C
Repo        : epel
Matched from:
Filename    : /usr/lib64/libyaml-0.so.1

libyaml-0.1.2-3.el5.x86_64 : YAML 1.1 parser and emitter written in C
Repo        : installed
Matched from:
Filename    : /usr/lib64/libyaml-0.so.1

libyaml-0.1.2-3.el5.i386 : YAML 1.1 parser and emitter written in C
Repo        : installed
Matched from:
Filename    : /usr/lib/libyaml-0.so.1

Так существует ли библиотека?

[alexander@am-web-1 ~]$ ls /usr/lib64/libyaml-0.so.1*
/usr/lib64/libyaml-0.so.1  /usr/lib64/libyaml-0.so.1.1.0

64-битная работает, а 32-битная?

[alexander@am-web-1 ~]$ ls /usr/lib/libyaml-0.so.1*
/usr/lib/libyaml-0.so.1  /usr/lib/libyaml-0.so.1.1.0

Они оба существуют, так в чем проблема?!?


person agjmills    schedule 09.04.2012    source источник


Ответы (2)


Это скорее вопрос ServerFault, но я видел ту же проблему с обновлением/установкой Cobbler. Это проблема с несколькими репозиториями, которые вы включили на данный момент. Как правило, постоянное включение обоих репозиториев в одно и то же время является плохой практикой. Существует небольшой конфликт между пакетом libyaml из RPMForge и пакетами, предоставленными через EPEL.

Чтобы это исправить, сотрите пакет RPMForge через yum erase libyaml, затем продолжите обновление с помощью yum update --disablerepo=rpmforge. Вы также можете сделать дополнительный шаг, навсегда исключив этот конкретный пакет из файла конфигурации репозитория RPMForge...

person ewwhite    schedule 30.04.2012

вдохновленный ответом @ewwhite, я обнаружил, что это работает хорошо

yum erase libyaml
yum install --disablerepo=rpmforge libyaml-devel
person Will    schedule 19.11.2015