RHEL5: Заборонити встановлення i386 пакетів на 64-бітних системах?


13

Кожен раз, коли я встановлюю щось з yum, він намагається встановити як версії пакета x86_64, так і i386, якщо вони доступні. Чи можу я заборонити це, не вказуючи арку пакета?

Відповіді:


16

Додайте multilib_policy = найкраще до /etc/yum.conf

Тепер Yum спробує встановити "кращий" package.arch для вашої системи, і він встановить лише той (доки він доступний).

Якщо припустити, що ви працюєте в 64-бітній системі, ви спершу спробуєте встановити package.x86_64, якщо цього не існує, він повернеться до i386 та noarch.

За замовчуванням встановлено multilib_policy = all , що означає встановити всі можливі арки.


1
+1 Так, це найкраща відповідь. На жаль, більшість людей зараз не мають такої можливості.
knweiss

3

Я вже деякий час використовую варіант exactarch = 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.

BTW, як multilib_policy = best, так і exactarch = 1, здається, є деяким часом за замовчуванням.


2

Використовуйте функцію виключення в yum.conf:

exclude=*.i386 *.i686

Або exclude=*.i?86(/etc/yum.conf). Таким чином, yum search навіть не перелічить 32-бітні пакети.
основні6

1

Спробуйте встановити версію i386, якщо у вас вже встановлена ​​версія x86_64.

Зверніть увагу, що при використанні виключення в yum.conf ви можете виключити пакунки, доступні лише в арці i386

Більш безпечним способом може бути явний запит арки під час встановлення :

yum install package.x86_64

0

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

--disableexcludes = [all | main | repoid] Вимкнути виключення, визначені у ваших конфігураційних файлах. Бере один з трьох варіантів: all == відключити все виключає main == onesposoble iskljuє, визначені в [main] у yum.conf repoid == disabled виключає визначені для цього репо

Вище від man ви можете використовувати або ви можете встановити yumex, які дають gui u, можуть вибрати оберти, які вам потрібно встановити.

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


Я знаю про виключення, я просто не хочу вводити їх кожен раз, а також не хочу створювати псевдоніми. Я просто не думаю, що встановити i386 на 64-бітній системі за замовчуванням - це не дуже добре.
Микола Прокощенко

у такому випадку ви обираєте з гуї, що кращі варіанти
Раджат,

0

Для мене працює видалення всіх пакетів ix86 з машини. Тепер він ніколи не просить мене встановлювати будь-які 32-бітні.

Спочатку встановіть .rpmmacros так:

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

Потім запустіть це (я припускаю баш):

rpm -qa | egrep "i.86$"

Це дасть вам список встановлених на даний момент не x86_64 rpms. Ви можете їх видалити за допомогою цього:

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

Тепер у вас чиста 64-бітова система.

-Деніться


-3

Список i386

yum list installed | grep i386

А тепер ви можете його видалити або оновити до x86_64


1
Це не відповідає на запитання.
Свен

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