RHEL5: Proibir a instalação de pacotes i386 em sistemas de 64 bits?

13

Sempre que instalo algo com o yum, ele tenta instalar as versões x86_64 e i386 do pacote, se ambas estiverem disponíveis. Existe alguma maneira de proibir isso sem especificar o arco do pacote?

Nikolai Prokoschenko
fonte

Respostas:

16

Adicione multilib_policy = best ao seu /etc/yum.conf

O Yum agora tentará instalar o "melhor" package.arch para o seu sistema e ele somente o instalará (contanto que esteja disponível).

Supondo que você esteja em um sistema de 64 bits, o yum primeiro tentará instalar o package.x86_64; se isso não existir, ele voltará ao i386 e noarch.

A configuração padrão é multilib_policy = all , o que significa instalar todos os arcos possíveis.


fonte
1
+1 Sim, essa é a melhor resposta. Infelizmente, a maioria das pessoas não tem essa opção agora.
knweiss
3

Estou usando a opção exactarch = 1 no /etc/yum.conf há algum tempo, e funcionou para mim.

Ele ainda permite que você especifique manualmente o arch, mas se não o fizer, instala apenas x86_64, não os dois.

De acordo com o manual 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 e exactarch = 1 parecem ser o padrão já há algum tempo.

João Carlos Mendes Luís
fonte
2

Use a função de exclusão no yum.conf:

exclude=*.i386 *.i686
Tom_13
fonte
Ou exclude=*.i?86(/etc/yum.conf). Dessa forma, o yum search nem lista os pacotes de 32 bits.
basic6
1

Ele tentaria instalar a versão i386 se a versão x86_64 já estiver instalada.

Preste atenção que se você usar exclude no yum.conf, poderá excluir os pacotes que estão disponíveis apenas no i386 arch

Uma maneira mais segura seria solicitar explicitamente o arco no momento da instalação :

yum install package.x86_64
drAlberT
fonte
0

-x, --exclude = package Exclui um pacote específico por nome ou glob das atualizações em todos os repositórios. Opção de configuração: excluir

--disableexcludes = [all | main | repoid] Desativa as exclusões definidas nos seus arquivos de configuração. Toma uma das três opções: todas == desativar todas as exclusões main == desativar as exclusões definidas em [main] no yum.conf repoid == desativar as exclusões definidas para esse repositório

acima do man você pode usar ou você pode instalar o yumex que fornece a gui u pode escolher o rpm que você precisa instalar.

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

Rajat
fonte
Eu sei sobre exclusões, só não quero digitá-las todas as vezes, nem quero criar aliases. Eu simplesmente não acho que instalar o i386 no sistema de 64 bits por padrão seja uma coisa boa.
Nikolai Prokoschenko
nesse caso você escolher gui que melhores opções
Rajat
0

O que funciona para mim é remover todos os pacotes ix86 da máquina. Agora, nunca me pede para instalar nada de 32 bits.

Primeiro configure seu .rpmmacros assim:

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

Em seguida, execute isso (estou assumindo o bash):

rpm -qa | egrep "i.86$"

Isso fornecerá uma lista de rpms não x86_64 atualmente instalados. Você pode remover todos eles com isso:

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

Agora você tem um sistema de 64 bits puro.

-Dave

vagão
fonte
-3

Lista i386

yum list installed | grep i386

E agora você pode removê-lo ou atualizá-lo para x86_64

Angelinux
fonte
1
Isso não responde à pergunta.
Sven
Apesar de que possa ser útil para reparar a situação, que não é uma resposta para a questão de como evitar que eles se instalou em primeiro lugar ...
HBruijn