yum depsolving问题 – 包已经安装?

在试图做一个“百胜更新”,我已经开始在我的一些系统上遇到以下错误:

--> Running transaction check --> Processing Dependency: freetype = 2.2.1-28.el5_5 for package: freetype-devel ---> Package freetype.i386 0:2.2.1-28.el5_5.1 set to be updated --> Finished Dependency Resolution freetype-devel-2.2.1-28.el5_5.i386 from installed has depsolving problems --> Missing Dependency: freetype = 2.2.1-28.el5_5 is needed by package freetype-devel-2.2.1-28.el5_5.i386 (installed) Error: Missing Dependency: freetype = 2.2.1-28.el5_5 is needed by package freetype-devel-2.2.1-28.el5_5.i386 (installed) 

这对我来说没有任何意义,因为当我尝试安装“缺失”软件包时,我被告知它已经在那里了。

 Setting up Install Process Package freetype-2.2.1-28.el5_5.i386 already installed and latest version Nothing to do 

我已经尝试了一个没有改变的'yum clean all',以及yumbuild议的package-cleanup命令。

任何人都可以帮我进一步诊断或解决这个问题吗?

它告诉你:

  1. 它想升级freetype版本2.2.1-28.el5_5.1 – 注意.1。
  2. freetype-devel 2.2.1-28.el5_5(旧版本)已安装,并且
  3. freetype-devel 2.2.1-28.el5_5(旧版本)需要freetype 2.2.1-28.el5_5(旧版本)

由于第一步将删除旧版本的freetype ,旧的freetype-devel将被打破。 所以它救了。

问题是:为什么不试图更新到新版本的freetype-devel?

对于freetype和freetype-devel,都有i386和x86_64包,所以应该引起冲突,但是,呃,有时候事情会变得不那么顺利。 如果你在x86_64上,并且不需要i386包,那么删除它可能会清除一切。

但是最容易重新开始工作的可能是删除freetype-devel,除非你正在编译与freetype相关的东西。 更新成功完成后,您可以尝试单独安装,如果遇到问题,将会是一个更直接的问题。

你在64位系统? 如果是这样,如果您安装了软件包的i386和x86_64版本,则可能会遇到奇怪的行为。 您可以尝试删除i386 freetype包,如下所示:

 yum remove freetype.i386 

这可能会删除额外的i386包,但如果你在x86_64系统上,这是好的。 事实上,我经常最终删除所有这样的i386软件包:

yum remove $(rpm -qa –qf ='%{NAME} – %{VERSION}。%{ARCH} \ n'| grep'.i386 $')

您可以通过在/etc/yum.conf中将multilib_policy设置为best来防止将来安装i386软件包:

 multilib_policy=best