3

#sudo yum update を試みるたびに、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

どちらも存在するのに、何が問題なの?!?

4

2 に答える 2

5

これはServerFaultに関する質問ですが、Cobbler の更新/インストールでも同じ問題が発生しました。これは、この時点で有効にした複数のリポジトリの問題です。一般に、両方のリポジトリを同時に永続的に有効にすることはお勧めできません。RPMForgeからのパッケージとEPELリポジトリ経由で提供されるlibyamlパッケージの間には、わずかな競合があります。

修正するには、 で RPMForge パッケージを消去してからyum erase libyaml、 で更新を続けてくださいyum update --disablerepo=rpmforge。RPMForgeリポジトリ構成ファイルからその特定のパッケージを永久に除外することで、追加の手順を実行することもできます...

于 2012-04-30T04:36:06.340 に答える
1

@ewwhite の回答に触発されて、これを行うとうまくいくことがわかりました

yum erase libyaml
yum install --disablerepo=rpmforge libyaml-devel
于 2015-11-19T06:53:50.047 に答える