RHEL5: Запретить установку пакетов i386 в 64-битных системах?

Каждый раз, когда я устанавливаю что-то с помощью yum, он пытается установить версии пакета для x86_64 и i386, если они доступны. Есть ли способ, которым я могу запретить это без указания арки пакета?

7 ответов

Решение

Добавьте multilib_policy=best в ваш /etc/yum.conf

Теперь Yum попытается установить "лучший" package.arch для вашей системы, и он установит только этот (пока он доступен).

Предполагая, что вы работаете в 64-битной системе, yum сначала попытается установить package.x86_64, если его не существует, он вернется к i386 и noarch.

Значением по умолчанию является multilib_policy = all, что означает установку всех возможных арок.

В течение некоторого времени я использую option surearch=1 в /etc/yum.conf, и он работает для меня.

Он по-прежнему позволяет вам вручную указывать arch, но если вы этого не сделаете, он устанавливает только x86_64, а не оба.

Согласно инструкции el6, 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.

Кстати, и multilib_policy=best, и точный arch=1, кажется, уже некоторое время по умолчанию.

Используйте функцию exclude в yum.conf:

exclude=*.i386 *.i686

Он попытается установить версию i386, если у вас уже установлена ​​версия x86_64.

Обратите внимание, что если вы используете исключение в yum.conf, вы можете исключить пакеты, доступные только в архиве i386.

Более безопасный способ - явно запросить арку во время установки:

yum install package.x86_64

Для меня работает удаление всех пакетов ix86 с машины. Теперь он никогда не просит меня установить что-либо 32-битное.

Сначала настройте ваш.rpmmacros так:

cat ~/.rpmmacros
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}

Затем запустите это (я предполагаю, Bash):

rpm -qa | egrep "i.86$"

Это даст вам список установленных не x86_64 rpms. Вы можете удалить их все с помощью этого:

rpm -e $(rpm -qa | egrep "i.x86$")

Теперь у вас есть чистая 64-битная система.

-Dave

-x, --exclude=package Исключить конкретный пакет по имени или глобусу из обновлений во всех репозиториях. Вариант конфигурации: исключить

--disableexclude =[all|main|repoid] Отключить исключения, определенные в ваших файлах конфигурации. Принимает одну из трех опций: все == отключить все исключает main == отключить исключает, определенные в [main] в yum.conf repoid == отключить исключает определенные для этого репозитория

Вы можете использовать выше, из man, или вы можете установить yumex, который дает вам возможность выбрать rpm, который вам нужно установить.

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

Список i386

yum list installed | grep i386

И теперь вы можете удалить его или обновить до x86_64

Другие вопросы по тегам