DB2 10.5 de 64 bits no tiene libpam de 32 bits y libaio de 64 bits en Ubuntu 12.04

8

Esto me paso a mi. Si te está sucediendo, tal vez esto pueda ahorrarte un poco de tiempo.

Estaba instalando un servidor DB2 10.5 de 64 bits (no estoy seguro de qué paquete de producto, alguien me lo dio) en un sistema Linux Ubuntu 12.04 de SoftLayer de 64 bits que incluía una pila LAMP.

En pocas palabras: resulta que me faltaba libpam de 32 bits y libaio de 64 bits y que necesitaba hacer:

   apt-get install libpam0g:i386 libaio1

El kilometraje de la mayoría de las personas, sin duda, variará. En caso de que solo una parte de la experiencia se aplique a usted y le sea útil, aquí hay más detalles.

Antes de la instalación, se db2prereqcheckquejó:

   DBT3514W  The db2prereqcheck utility failed to find the following
   32-bit library file: "/lib/libpam.so*".

Efectivamente, todo lo que tenía era:

   /lib/x86_64-linux-gnu/libpam.so.0.83.0
   /lib/x86_64-linux-gnu/libpamc.so.0
   /lib/x86_64-linux-gnu/libpam.so.0
   /lib/x86_64-linux-gnu/libpam_misc.so.0.82.0
   /lib/x86_64-linux-gnu/libpamc.so.0.82.1
   /lib/x86_64-linux-gnu/libpam_misc.so.0

Después de mirar un poco por la web, hice:

   apt-get install libpam0g:i386

después de lo cual también tuve:

   /lib/i386-linux-gnu/libpam.so.0.83.0
   /lib/i386-linux-gnu/libpamc.so.0
   /lib/i386-linux-gnu/libpam.so.0
   /lib/i386-linux-gnu/libpam_misc.so.0.82.0
   /lib/i386-linux-gnu/libpamc.so.0.82.1
   /lib/i386-linux-gnu/libpam_misc.so.0

Pero db2prereqcheck todavía hizo la misma queja.

Se recomiendan varios lugares en la web:

   ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0

pero eso me pareció un truco grotesco, seguro que me llevaría a diferentes problemas con diferentes aplicaciones más adelante.

Intenté varias cosas con variables de entorno, incluyendo LD_LIBRARY_PATHy LD_LIBRARY_PATH_32, pero nada ayudó con el db2prereqcheck.

Alguien en quien confío dijo que de todos modos continuaría con la instalación. Así que lo hice

   db2_install

(era un sistema sin cabeza remota), y aunque el db2prereqcheck que se ejecuta como parte de la instalación se quejaron, la instalación hizo el trabajo.

Lamentablemente, db2start se quejó:

   sqllib/adm/db2start: error while loading shared libraries:
   libaio.so.1: wrong ELF class: ELFCLASS32

Alguien en quien confié recomendó:

   apt-get install libaio1

que instaló libaio de 64 bits (antes de eso mi sistema solo incluía 32 bits), después de lo cual terminé con:

   /lib/i386-linux-gnu/libaio.so.1.0.1
   /lib/i386-linux-gnu/libaio.so.1
   /lib/x86_64-linux-gnu/libaio.so.1.0.1
   /lib/x86_64-linux-gnu/libaio.so.1

Después de eso, todo salió bien.

Nuevamente, en resumen: me faltaban libpam de 32 bits y libaio de 64 bits.

Por cierto, mi imagen del sistema ya incluía paquetes libstdc++6y lib32stdc++6 , algo que mucha gente parece faltar en sus entornos.

Espero que esto ayude.

usuario253706
fuente
2
Por favor separe la pregunta de la respuesta.
Luis Alvarado

Respuestas:

7

En el servidor Ubuntu 14.04.02 (64 bit) tuve que instalar los siguientes paquetes antes de instalar DB2 10.5:

  • libx32stdc ++ 6
  • libpam0g: i386
  • libaio1
tangenos
fuente
3
Nota: Es posible que deba agregar paquetes para la arquitectura i386: sudo dpkg --add-architecture i386luego sudo apt-get updatey finalmente sudo apt-get install libpam0g:i386. Nota para principiantes que instalan DB2: Instala estos paquetes usando apt-getel administrador de paquetes de Ubuntu. Ej: apt-get install libx32stdc++6. Use sudopara ejecutar estos comandos como root. (De lo contrario, es posible que no tenga suficientes permisos de acceso)
SilentSteel
0
ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0

Esto hizo el truco para mí, a pesar del truco feo.

apt-get install libpam0g dijo que todo estaba instalado y actualizado.

Kevin
fuente
0

Es posible que deba ejecutar ldconfigdespués de instalar la versión i386 de la biblioteca pam; DB2 busca en la memoria caché del vinculador sus dependencias, por lo que si está instalado y hay una entrada /etc/ld.so.cache.d/, debería encontrarlo si ldconfigse ha ejecutado.

Ejecutar algo así strace db2 connect to samplele dará mucha información.

mikewaters
fuente