Yum package conflict between different architectures

sh-beta asked:

I have a machine running CentOS 5.5 I want to upgrade to the newest 5.x release. It’s tripping over freetype.

Freetype has both an i386 and an x86_64 version installed. This is normal, but the x86_64 version is substantially newer (backported 2.4 to support a few other packages; I don’t even have a 32-bit machine to build the i386 version on).

[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 ~]$

On this test machine, I can manually downgrade the x86_64 package to the base CentOS 5.5 version and then upgrade both to the 5.8 version no problem.

[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 ~]$

What’s going on here? How can I fix it? Downgrading is a far last resort on my servers since I’ve got other packages that depend on 2.4.

My answer:


If you don’t need the i386 vesrion of freetype then remove it:

  • rpm -e freetype.i386

If you need it, or other system packages depend on it, then do this instead: rebuild it for i386. This is pretty trivial if you still have the source RPM generated when you backported.

  • Install the EPEL repository
  • yum install mock
  • mock -r epel-5-i386 freetype-2.4.src.rpm

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.