Кожен раз, коли я встановлюю щось з yum, він намагається встановити як версії пакета x86_64, так і i386, якщо вони доступні. Чи можу я заборонити це, не вказуючи арку пакета?
Кожен раз, коли я встановлюю щось з yum, він намагається встановити як версії пакета x86_64, так і i386, якщо вони доступні. Чи можу я заборонити це, не вказуючи арку пакета?
Відповіді:
Додайте multilib_policy = найкраще до /etc/yum.conf
Тепер Yum спробує встановити "кращий" package.arch для вашої системи, і він встановить лише той (доки він доступний).
Якщо припустити, що ви працюєте в 64-бітній системі, ви спершу спробуєте встановити package.x86_64, якщо цього не існує, він повернеться до i386 та noarch.
За замовчуванням встановлено multilib_policy = all , що означає встановити всі можливі арки.
Я вже деякий час використовую варіант 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, здається, є деяким часом за замовчуванням.
Спробуйте встановити версію i386, якщо у вас вже встановлена версія x86_64.
Зверніть увагу, що при використанні виключення в yum.conf ви можете виключити пакунки, доступні лише в арці i386
Більш безпечним способом може бути явний запит арки під час встановлення :
yum install package.x86_64
-x, --exclude = пакунок Виключіть певний пакунок за назвою чи глобальним продуктом із оновлень у всіх сховищах. Варіант конфігурації: виключити
--disableexcludes = [all | main | repoid] Вимкнути виключення, визначені у ваших конфігураційних файлах. Бере один з трьох варіантів: all == відключити все виключає main == onesposoble iskljuє, визначені в [main] у yum.conf repoid == disabled виключає визначені для цього репо
Вище від man ви можете використовувати або ви можете встановити yumex, які дають gui u, можуть вибрати оберти, які вам потрібно встановити.
Для мене працює видалення всіх пакетів 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-бітова система.
-Деніться