在尝试执行“yum update”时,我开始在多个系统上遇到以下错误:
--> 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”但没有任何变化,以及 yum 建议的包清理命令。
有人能帮助我进一步诊断或解决这个问题吗?
答案1
它告诉你:
- 它想要升级 freetype 版本 2.2.1-28.el5_5.1 — 注意 .1。
- 已安装 freetype-devel 2.2.1-28.el5_5(旧版本),并且
- 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 链接的东西。更新成功完成后,你可以尝试单独安装它,如果出现问题,这将是一个更直接的问题。
答案2
您使用的是 64 位系统吗?如果是这样,如果您同时安装了 i386 和 x86_64 版本的软件包,您可能会遇到奇怪的行为。您可以尝试删除 i386 freetype 软件包,如下所示:
yum remove freetype.i386
这可能会删除额外的 i386 软件包,但如果你使用的是 x86_64 系统,这没问题。事实上,我经常会删除全部i386 软件包如下:
yum 删除 $(rpm -qa --qf='%{NAME}-%{VERSION}.%{ARCH}\n' | grep '.i386$')
您可以通过设置multilib_policy
来阻止将来安装 i386 软件包:best
/etc/yum.conf
multilib_policy=best