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


13

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

Ответы:


16

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

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

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

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


1
+1 Да, это лучший ответ. К сожалению, большинство людей не имеют такой возможности.
Knweiss

3

Я уже давно использую 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, кажется, уже некоторое время по умолчанию.


2

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

exclude=*.i386 *.i686

Или exclude=*.i?86(/etc/yum.conf). Таким образом, поиск yum не будет даже перечислять 32-битные пакеты.
basic6

1

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

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

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

yum install package.x86_64

0

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

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

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

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


Я знаю об исключениях, я просто не хочу вводить их каждый раз, и при этом я не хочу создавать псевдонимы. Я просто не думаю, что установка i386 на 64-битную систему по умолчанию - хорошая вещь.
Николай Прокощенко

в этом случае вы выбираете из графического интерфейса, что лучшие варианты
Раджат

0

Для меня работает удаление всех пакетов 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


-3

Список i386

yum list installed | grep i386

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


1
Это не отвечает на вопрос.
Свен

Хотя это может быть полезно для исправления ситуации, это не ответ на вопрос, как предотвратить их установку в первую очередь ...
HBruijn
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.