百胜餐饮包不同架构之间的冲突

我有一台运行CentOS 5.5的机器,我想升级到最新的5.x版本。 它正在freetype绊倒。

Freetype同时安装了i386和x86_64版本。 这是正常的,但x86_64版本更新(支持2.4版以支持其他一些软件包;我甚至没有32位机器来构buildi386版本)。

[sh-beta@localhost ~]$ yum list installed | grep freetype freetype.i386 2.2.1-28.el5_7.2 installed freetype.x86_64 2.4.8-1 installed [sh-beta@localhost ~]$ yum list updates | grep freetype freetype.i386 2.2.1-31.el5_8.1 updates [sh-beta@localhost ~]$ sudo yum -y update freetype.i386 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cicku.me * extras: mirrors.sonic.net * updates: centos.sonn.com Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package freetype.i386 0:2.2.1-31.el5_8.1 set to be updated --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================================================================================================== Package Arch Version Repository Size ==================================================================================================================================================================================== Updating: freetype i386 2.2.1-31.el5_8.1 updates 312 k Transaction Summary ==================================================================================================================================================================================== Install 0 Package(s) Upgrade 1 Package(s) Total size: 312 k Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Check Error: package freetype-2.4.8-1.x86_64 (which is newer than freetype-2.2.1-31.el5_8.1.i386) is already installed Error Summary ------------- [sh-beta@localhost ~]$ 

在这个testing机器上,我可以手动将x86_64软件包降级到基本的CentOS 5.5版本,然后升级到5.8版本没有问题。

 [sh-beta@localhost ~]$ sudo yum -y downgrade freetype-2.2.1-28.el5_7.2.x86_64 <...snip...> [sh-beta@localhost ~]$ yum list installed | grep freetype freetype.i386 2.2.1-28.el5_7.2 installed freetype.x86_64 2.2.1-28.el5_7.2 installed [sh-beta@localhost ~]$ sudo yum update freetype-2.2.1-31.el5_8.1 <...snip...> [sh-beta@localhost ~]$ yum list installed | grep freetype freetype.i386 2.2.1-31.el5_8.1 installed freetype.x86_64 2.2.1-31.el5_8.1 installed [sh-beta@localhost ~]$ 

这里发生了什么? 我该如何解决? 降级是在我的服务器上最后一招,因为我有其他的包依赖于2.4。

如果你不需要freetype的i386 vesrion然后删除它:

  • rpm -e freetype.i386

如果你需要它,或者其他系统软件包依赖于它,那就改为:为i386重build它。 如果您在使用backport时仍然生成源代码RPM,这是相当简单的。

  • 安装EPEL存储库
  • yum install mock
  • mock -r epel-5-i386 freetype-2.4.src.rpm