GNU/Linux >> Tutoriales Linux >  >> Cent OS

Centos:¿las rpm de 64 bits no pueden resolver las dependencias de 32 bits?

Problema

Tengo un RPM que contiene binarios mixtos de 64 bits y 32 bits. Uno de los binarios depende de paquetes i686 de 32 bits. Cuando intento instalar el paquete yum me da error, notando que el paquete requiere los paquetes de 32 bits. Sin embargo, cuando intento instalar los paquetes necesarios yo mismo, funciona perfectamente.

Detalles

En mi archivo de especificaciones tengo

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

Cuando intento instalar el paquete en un sistema CentOS 6.3 obtengo:

# 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

Sin embargo, cuando instalo manualmente los paquetes a los que se hace referencia, obtengo

# 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

No entiendo muy bien por qué ocurre el error y qué está tratando de decirme. Veo que solo ocurre para los paquetes de 32 bits, ya que el cuarto paquete requerido, 'lshw', parece no ser un problema. ¿Existe una sintaxis de archivo de especificaciones especial para hacer referencia a paquetes de 32 bits?

Respuesta aceptada:

Acabo de encontrar la respuesta. Mi línea Requires debe ser

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

como se describe en
http://www.rpm.org/wiki/PackagerDocs/ArchDependencies


Cent OS
  1. Cómo instalar un paquete RPM en un directorio diferente en CentOS/RHEL/Fedora

  2. “-bash:firewall:comando no encontrado” – Cómo resolver en CentOS/RHEL 7

  3. “lsb_release:comando no encontrado” – Corrección en CentOS/RHEL

  4. Cómo recuperar archivos de paquetes rpm eliminados (bibliotecas, archivos de configuración) en CentOS/RHEL 7

  5. No puedo instalar FreeTDS a través de Yum Package Manager

Cómo instalar y administrar paquetes en CentOS usando RPM

Cómo descargar un paquete RPM con todas las dependencias en CentOS, Fedora, RHEL, AlmaLinux, Rocky Linux

Cómo instalar paquetes RPM en CentOS 8

Cómo instalar paquetes RPM en CentOS, RHEL y Fedora

Listar todos los paquetes instalados en RHEL y CentOS

Instalar htop en centos 6.4