Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Why does the i386 version of most software get installed, along with the x86_64 version, on a CentOS 64-bit system?

# yum install php-xml
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process    
Package php-xml-5.3.12-5.el5.art.x86_64 already installed and latest version    
Package php-xml-5.3.12-5.el5.art.i386 already installed and latest version    
Nothing to do
share|improve this question

migrated from serverfault.com May 9 '12 at 15:18

This question came from our site for system and network administrators.

up vote 3 down vote accepted

CentOS has an answer on their faq page about it, it is for compatibility with 32 bit stuff.

To fix it, their answer says to add exclude = *.i?86 to your yum.conf. However if you have i386 rpms installed, updates will break so make sure you remove them before doing this.

I prefer setting multilib_policy=best so in the oddball case you do need something 32 bit, it will be installed but not by default.

multilib_policy - Can be set to ’all’ or ’best’. All means install all possible arches for any package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, if it is available. Best means install the best arch for this platform, only.

share|improve this answer
all right, thats useful. is multilib_policy=best generally safe? I dont want to have headaches down the line in order to save some disk space... and where do I set multilib_policy? yum.conf? thanks! – Gaia May 9 '12 at 22:42
@Gala multilib_policy=best is safe. I had headaches down the line doing it the 'exclude' way, specifically when I didn't remove the i686 rpms which broke updates and more headaches when trying to install something that needed glibc.i686. If you don't want the i386 RPMs, you can remove them using the instructions from CentOS, then add the multilib_policy . – mmckinst May 9 '12 at 23:11
i think the problems i am having now are related to my setup. would you mind chiming in if you have any ideas? thank you unix.stackexchange.com/questions/47287/… – Gaia Oct 9 '12 at 0:53
So the line do multilib_policy doesn't exist at all in yum.conf do i have to add it? – user40754 Jun 8 '13 at 11:24
@rafael Yes; not all possible config lines are in the file. "Best" is the default if nothing is specified in more recent versions of yum, but "all" was the older default. (In current RHEL 6 and in all recent versions of Fedora, it defaults to "best".) – mattdm Jun 8 '13 at 14:00

It's for compatibility. Those packages are needed to run 32bit software on 64bit systems.

share|improve this answer

If you do not want that behaviour you have to install package.x86_64 instead. Most of the i386-packages are there because they have to fulfill some dependency with a program that is still 32-bit (e.g. firefox).

share|improve this answer
I understand that applying to a desktop machine, but to a server? It doesnt have a GUI, only server software and AFAIK it is all x64... – Gaia May 9 '12 at 22:41
@Gaia Not all - even on a server. Try yum erase PACKAGE.i386 .... on most packages the uninstall will work - on others there will be a huge dependency tree. You can try this without worries - you have to confirm the deinstallation with "y". – Nils May 10 '12 at 11:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.