13

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 Answers7

16

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.

toString
  • 334
  • 1
  • 7
3

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.

2

Use the exclude function in yum.conf:

exclude=*.i386 *.i686
Tom_13
  • 51
  • 2
  • 5
1

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
drAlberT
  • 10,871
  • 7
  • 38
  • 52
0

-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.

http://www.yum-extender.org/blog/

Rajat
  • 3,329
  • 21
  • 29
0

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

toppledwagon
  • 4,215
  • 24
  • 15
-3

List i386

yum list installed | grep i386

And now you can remove it or update it to x86_64

Angelinux
  • 1
  • 1
  • 1
    This doesn't answer the question. – Sven Sep 01 '16 at 18:38
  • 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