Каждый раз, когда я что-то устанавливаю с помощью yum, он пытается установить обе версии пакета для x86_64 и i386, если они доступны. Могу ли я как-то запретить это, не указав арку пакета?
Добавить Multilib_policy = лучший на ваш /etc/yum.conf
Yum попытается установить «лучший» package.arch для вашей системы и установит только его (если он доступен).
Предполагая, что вы используете 64-битную систему, yum сначала попытается установить package.x86_64, если он не существует, он вернется к i386 и noarch.
По умолчанию установлено Multilib_policy = все, а значит установить все возможные арки.
Я использовал вариант точныйарх = 1 в /etc/yum.conf какое-то время, и у меня это сработало.
Он по-прежнему позволяет вам вручную указывать арку, но если вы этого не сделаете, он установит только 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 = лучший и точныйарх = 1 кажется, какое-то время используется по умолчанию.
Используйте функцию исключения в yum.conf:
exclude=*.i386 *.i686
Он попытается установить версию i386, если у вас уже установлена версия x86_64.
Обратите внимание, что если вы используете exclude в yum.conf, вы можете исключить пакеты, доступные только в i386 arch
Более безопасный способ - явно запрашивать арку во время установки:
yum install package.x86_64
-x, --exclude = package Исключить определенный пакет по имени или глобу из обновлений во всех репозиториях. Вариант конфигурации: исключить
--disableexcludes = [all | main | repoid] Отключить исключения, определенные в ваших файлах конфигурации. Принимает один из трех вариантов: all == disable all excludes main == disable excludes, определенные в [main] в yum.conf repoid == disable excludes, определенные для этого репо
выше от человека, который вы можете использовать, или вы можете установить yumex, который дает графический интерфейс, и вы можете выбрать обороты, которые вам нужно установить.
Что мне подходит, так это удаление всех пакетов ix86 с машины. Теперь он никогда не просит меня установить что-либо 32-битное.
Сначала настройте свой .rpmmacros следующим образом:
cat ~/.rpmmacros
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
Затем запустите это (я предполагаю bash):
rpm -qa | egrep "i.86$"
Это даст вам список установленных на данный момент rpms не x86_64. Вы можете удалить их все с помощью этого:
rpm -e $(rpm -qa | egrep "i.x86$")
Теперь у вас есть чистая 64-битная система.
-Дэйв
Список i386
yum list installed | grep i386
И теперь его можно удалить или обновить до x86_64