How to install 32-bit packages on a 64-bit CentOS

We have a lot of 32-bit CentOS 6 servers with custom rpms built for i386 and i686 architectures in our own RPM repos.

We now have some 64-bit CentOS 6 servers, but would like to be able to install the 32-bit packages from the 32-bit repos.

I know that Debian supports "multiarch" that allows one to install 32-bit libraries and packages. What is the CentOS equivalent?


The way all the major repos solve this is to actually copy the relevant 32-bit packages into the 64-bit repository. You can see this from a careful inspection of any such repo (CentOS, Fedora, etc.).

So, after you copy all the 32-bit packages to the 64-bit repo and re-run createrepo --update ... you should be able to install them. Since this can use a lot of space, I suggest hard linking them rather than copying them.

CentOS repository package listing


In yum.conf you'll see a line like this:

multilib_policy=best

Change it to:

multilib_policy=all

This will allow yum to install 32-bit packages without you having to specify *.i686 specifically.


CentOS has multilib support. If your software is 32 bit and is a rpm, you can try to yum install it. Is the RPM properly built, and you've got access to the CentOS yum repositories it should hopefully be able to satisfy any 32 bit dependency (if available in repo)

If you search your 64 bit CentOS repos, you will find a lot of 32-bit packages listed. CentOS Wiki excerpt:

x86_64 installation by default will install iX86 32-bit packages on
a 64-bit installation for compatibility purposes.