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?
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?
Respostas:
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.
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.
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
-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.
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