Каждый раз, когда я устанавливаю что-то с помощью yum, он пытается установить обе версии пакета x86_64 и i386, если они доступны. Можно ли как-то запретить это без указания арки пакета?
Каждый раз, когда я устанавливаю что-то с помощью yum, он пытается установить обе версии пакета x86_64 и i386, если они доступны. Можно ли как-то запретить это без указания арки пакета?
Ответы:
Добавьте 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, кажется, уже некоторое время по умолчанию.
Он попытается установить версию i386, если у вас уже установлена версия x86_64.
Обратите внимание, что если вы используете исключение в yum.conf, вы можете исключить пакеты, доступные только в архиве i386.
Более безопасный способ - явно запросить архив во время установки :
yum install package.x86_64
-x, --exclude = package Исключить определенный пакет по имени или глобусу из обновлений во всех репозиториях. Вариант конфигурации: исключить
--disableexclude = [all | main | repoid] Отключить исключения, определенные в ваших файлах конфигурации. Принимает один из трех вариантов: все == отключить все исключает main == отключить исключает, определенные в [main] в yum.conf repoid == отключить исключает определенные для этого репозитория
Вы можете использовать выше, от man, или вы можете установить yumex, который дает вам возможность выбрать rpm, который вам нужно установить.
Для меня работает удаление всех пакетов 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