Problema
Ho un RPM che contiene binari misti a 64 bit e 32 bit. Uno dei binari dipende dai pacchetti i686 a 32 bit. Quando provo a installare il pacchetto yum mi dà un errore, notando che il pacchetto richiede i pacchetti a 32 bit. Tuttavia, quando provo a installare da solo i pacchetti richiesti, funziona perfettamente.
Dettagli
Nel mio file di specifiche ho
Requires: glibc.i686 libstdc++.i686 device-mapper-libs.i686 lshw
Quando provo a installare il pacchetto su un sistema CentOS 6.3 ottengo:
# 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
Tuttavia, quando installo manualmente i pacchetti di riferimento, ottengo
# 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
Non capisco bene perché si verifica l'errore e cosa sta cercando di dirmi. Vedo che si verifica solo per i pacchetti a 32 bit poiché il quarto pacchetto richiesto "lshw" sembra non essere un problema. Esiste una sintassi di specfile speciale per fare riferimento ai pacchetti a 32 bit?
Risposta accettata:
Ho appena trovato la risposta. La mia riga Richiesto dovrebbe essere
Requires: glibc(x86-32) libstdc++(x86-32) device-mapper-libs(x86-32)
come descritto in
http://www.rpm.org/wiki/PackagerDocs/ArchDependencies