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, кажется, уже некоторое время по умолчанию.
Он попытается установить версию 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, который вам нужно установить.
Список i386
yum list installed | grep i386
И теперь вы можете удалить его или обновить до x86_64