Everytime I install something with yum, it tries to install both x86_64 and i386 versions of the package if both are available. Is there any way I can forbid that without specifying the arch of the package?
7 Answers
Add multilib_policy=best to your /etc/yum.conf
Yum will now try to install the "best" package.arch for your system and it will only install that one (as long as it is available).
Assuming you're on a 64-Bit system, yum will first try to install package.x86_64, if that doesn't exist it will fall back to i386 and noarch.
The default setting is multilib_policy=all, which means to install all possible arches.
- 334
- 1
- 7
-
1+1 Yes, that's the best answer. Unfortunately, most people don't now this option. – knweiss Oct 24 '09 at 14:06
I've been using option exactarch=1 in /etc/yum.conf for some time, and it has worked for me.
It still allows you to manually specify arch, but if you don't, it install only x86_64, not both.
According to el6 manual, yum.conf(5):
exactarch Either ‘1’ or ‘0’. Set to ‘1’ to make yum update only update the architectures of packages that you have installed. ie: with this enabled yum will not install an i686 package to update an i386 package. Default is ‘1’.
...
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.
BTW, both multilib_policy=best and exactarch=1 seem to be the default for some time now.
- 146
- 3
Use the exclude function in yum.conf:
exclude=*.i386 *.i686
- 51
- 2
- 5
-
Or `exclude=*.i?86` (/etc/yum.conf). That way, yum search won't even list 32-bit packages. – basic6 Mar 22 '15 at 16:25
It would try to install i386 version if you have x86_64 version already installed.
Pay attention that if you use exclude in yum.conf you could exclude packages only being available in i386 arch
A safer way could be to explicitly request the arch at install time:
yum install package.x86_64
- 10,871
- 7
- 38
- 52
-x, --exclude=package Exclude a specific package by name or glob from updates on all repositories. Configuration Option: exclude
--disableexcludes=[all|main|repoid] Disable the excludes defined in your config files. Takes one of three options: all == disable all excludes main == disable excludes defined in [main] in yum.conf repoid == disable excludes defined for that repo
above from man you can use or you can install yumex which give gui u can choose the rpm which you need to install.
- 3,329
- 21
- 29
-
I know about excludes, I just don't want to type them every time, neither do I want to create aliases. I just don't think installing i386 on 64-bit system by default is a good thing. – Nikolai Prokoschenko Oct 22 '09 at 16:35
-
What works for me is removing all of the ix86 packages from the machine. Now it never asks me to install any 32bit anything.
First setup your .rpmmacros like this:
cat ~/.rpmmacros
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
Then run this (I'm assuming bash):
rpm -qa | egrep "i.86$"
That will give you a list of non x86_64 rpms currently installed. You can remove all of them with this:
rpm -e $(rpm -qa | egrep "i.x86$")
Now you have a pure 64bit system.
-Dave
- 4,215
- 24
- 15
List i386
yum list installed | grep i386
And now you can remove it or update it to x86_64
- 1
- 1
-
1
-
Although that might be useful to repair the situation, that is not an answer to the question how to prevent them getting installed in the first place... – HBruijn Sep 01 '16 at 18:38