What are RPM file colors?
When building a package rpm will tag each file within the package with
a file color. Usually the file color will fit into one of four
categories as described by Jeff Johnson
here.
These categories are:\
- 0 is unknown or other
- 1 is Elf32
- 2 is Elf64
- 3 is (contains) both
So why does rpm do this? The short answer is “for multilib support”.
Basically so we can install both the 32bit and 64bit version of a
package on the system and have some hopes of everything still working
correctly.
An example of this would be a system that needed both the 32bit and
64bit version of glibc (chances are you have them both installed
because some package has been slow to move to 64bit and only provides
software compiled for 32bit). The problem with having both rpms
installed is that both rpms provide some of the same files (i.e
/sbin/ldconfig). Which one should rpm choose? This is where file
colors come in.
When installing a file from a new package rpm will check to see if the
file is already provided by another rpm and will then use file color to
determine if the file should be replaced or left alone. The current
behavior of rpm is to prefer 64bit over 32bit files. That means when
both i686 and x86_64 glibc are installed, ldconfig should be 64bit.
This can easily be checked:
\