deixe-me explicar isso um pouco, eu estou encarregado de atualizar parte do produto da nossa empresa de 32 para 64 bits.
No final, devemos ter um kernel de 64bits + 32bits + alguns aplicativos de 64bits. Com este cenário, deduzimos que eu preciso de 32 & 64bits versão de alguns rpms, principalmente dependências, mas a imagem fica um pouco feia depois que eu começo a trabalhar com as dependências.
Suponha que eu tenha apenas um programa, o Program1, que será de 64 bits e o restante do sistema de 32 bits. Este programa1 requer libgcc. Antes que qualquer coisa seja feita no sistema, eu consultei minha versão atual da libgcc
$>rpm -qa --queryformat '%{NAME}.%{ARCH}\n' | grep libgcc
E a resposta:
$>libgcc.i386
Eu vou e instale o libgcc rpm para 64 bits:
$>rpm -ivh --force --ignorearch libgcc-4.3.2-7.x86_64
Mas agora, depois da consulta
$>rpm -qa --queryformat '%{NAME}.%{ARCH}\n' | grep libgcc
Eu recebo apenas uma entrada, em vez de duas
$>libgcc.x86_64
Se eu verificar os arquivos, as bibliotecas e os programas serão executados como esperado, para que não haja nenhum problema ... até que eu queira atualizar nossa infraestrutura comum em ambas as versões.
Suponha agora o novo pacote comum, por exemplo, commonlibraries.i386.rpm e commonlibraries.x86_64.rpm.
Se eu quiser atualizar o commonlibraries.i386, ele requer libgcc.i386 e, como pudemos ver, apenas uma arquitetura é relatada, após a atualização x86_64 e, como conseqüência, o processo de upgrade falha.
O fato engraçado é na minha estação de trabalho, eu posso obter ambas as versões,
$ rpm -qa --queryformat '%{NAME}.%{ARCH}\n' | grep libgcc
libgcc.x86_64
libgcc.i686
Mas em nosso produto, parece impossível ter o mesmo pacote para múltiplas arquiteturas (e isso acontece com alguns pacotes, como libgcc, mas não com outros como kerberos5-libraries). Existe algum guru por aí que teve esse problema no passado?
Eu já li aqui o link para executar o rpm -e --justbd - -nodeps PackageName e instale depois o rpms ... mas isso não funciona.