Problème
J'ai un RPM qui contient des binaires mixtes 64 bits et 32 bits. L'un des binaires dépend des packages i686 32 bits. Lorsque j'essaie d'installer le package yum, une erreur s'affiche, notant que le package nécessite les packages 32 bits. Cependant, lorsque j'essaie d'installer moi-même les packages requis, cela fonctionne parfaitement.
Détails
Dans mon fichier de spécifications, j'ai
Requires: glibc.i686 libstdc++.i686 device-mapper-libs.i686 lshw
Lorsque j'essaie d'installer le package sur un système CentOS 6.3, j'obtiens :
# 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
Cependant, lorsque j'installe manuellement les packages référencés, j'obtiens
# 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
Je ne comprends pas très bien pourquoi l'erreur se produit et ce qu'elle essaie de me dire. Je vois que cela ne se produit que pour les packages 32 bits car le quatrième package requis "lshw" ne semble pas poser de problème. Existe-t-il une syntaxe de fichier de spécification spéciale pour référencer les packages 32 bits ?
Réponse acceptée :
Je viens de trouver la réponse. Ma ligne Requires devrait être
Requires: glibc(x86-32) libstdc++(x86-32) device-mapper-libs(x86-32)
comme décrit dans
http://www.rpm.org/wiki/PackagerDocs/ArchDependencies