64bit rpm não pode resolver dependências de 32 bits

2

Problema

Estou tendo um RPM que contém binários mistos de 64 bits e 32 bits. Um dos binários depende de pacotes i686 de 32 bits. Quando tento instalar o pacote, o yum me dá um erro, observando que o pacote requer os pacotes de 32 bits. No entanto, quando eu tento instalar os pacotes necessários sozinho, ele funciona sem falhas.

Detalhes

No meu arquivo de especificações eu tenho

Requires:       glibc.i686 libstdc++.i686 device-mapper-libs.i686 lshw

Quando tento instalar o pacote em um sistema CentOS 6.3, recebo:

# yum update gamigo-kvm-tools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package gamigo-kvm-tools.x86_64 0:0.0.7-4 will be updated
---> Package gamigo-kvm-tools.x86_64 0:0.0.9-4 will be an update
--> Processing Dependency: libstdc++.i686 for package: gamigo-kvm-tools-0.0.9-4.x86_64
--> Processing Dependency: glibc.i686 for package: gamigo-kvm-tools-0.0.9-4.x86_64
--> Processing Dependency: device-mapper-libs.i686 for package: gamigo-kvm-tools-0.0.9-4.x86_64
--> Finished Dependency Resolution
Error: Package: gamigo-kvm-tools-0.0.9-4.x86_64 (gamigo-CentOS-6-x86_64-liv)
           Requires: libstdc++.i686
Error: Package: gamigo-kvm-tools-0.0.9-4.x86_64 (gamigo-CentOS-6-x86_64-liv)
           Requires: device-mapper-libs.i686
Error: Package: gamigo-kvm-tools-0.0.9-4.x86_64 (gamigo-CentOS-6-x86_64-liv)
           Requires: glibc.i686
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

No entanto, quando instalo manualmente os pacotes referenciados, obtenho

# yum install libstdc++.i686 device-mapper-libs.i686 glibc.i686
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Package libstdc++-4.4.6-4.el6.i686 already installed and latest version
Package device-mapper-libs-1.02.74-10.el6.i686 already installed and latest version
Package glibc-2.12-1.80.el6_3.5.i686 already installed and latest version
Nothing to do

Eu não entendo muito bem porque o Erro ocorre e o que ele está tentando me dizer. Eu vejo que isso está ocorrendo apenas para os pacotes de 32 bits, já que o quarto pacote requerido 'lshw' parece não ter problema algum. Existe uma sintaxe specfile especial para referenciar pacotes de 32 bits?

    
por lloesche 16.10.2012 / 14:19

2 respostas

9

Acabei de encontrar a resposta. Minha linha Requer deve ser

Requires:       glibc(x86-32) libstdc++(x86-32) device-mapper-libs(x86-32)

como descrito em link

    
por 16.10.2012 / 14:31
0

Desde que alguém tenha respondido por 4.6 - para a versão 4.4, se você depender de um RPM de 32 bits para contornar dificuldades ou falta de sintaxe que possa funcionar para outras pessoas:

Requires:      /lib/libc.so.6

Como esse arquivo é fornecido pelo 32bit da glibc, a instalação obterá a dependência correta.

    
por 22.03.2018 / 07:42