viernes, 13 de noviembre de 2015

Instalación del cliente de DB2 9.7 en Debian 7 (wheezy) y 8 (jessie)

Es muy común que las aplicaciones que solicitan cumplir ciertos requerimientos no sean muy específicas con cuales deben cumplir. Un ejemplo es el cliente de DB2.

Al ejecutar el script de comprobación aparece en primer lugar el siguiente mensaje de error:

root@srv----:/tmp/client# ./db2prereqcheck 
WARNING:
   Can't use string to find the version of libstdc++.
   Check the following web site for the up-to-date system requirements
   of IBM DB2 9.7
   http://www.ibm.com/software/data/db2/udb/sysreqs.html
   http://www.software.ibm.com/data/db2/linux/validate

Traté de hacer una búsqueda de ese archivo en /usr/lib y allí estaba... instalé la versión de 32 bits, las librerías de desarrollo, etc y seguía sin superar ese requerimiento... hasta que se me encendió la bombilla e instalé, siguiendo la ruta de instalar librerías de desarrollo, el compilador "g++":

root@srv----:/tmp/client# apt-get install g++
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
El paquete indicado a continuación se instaló de forma automática y ya no es necesario.
  php5-ldap
Utilice «apt-get autoremove» para eliminarlo.
Se instalarán los siguientes paquetes extras:
  binutils cpp cpp-4.9 g++-4.9 gcc gcc-4.9 libasan1 libatomic1 libc-dev-bin libc6-dev
  libcilkrts5 libcloog-isl4 libgcc-4.9-dev libgomp1 libisl10 libitm1 liblsan0 libmpc3
  libmpfr4 libquadmath0 libstdc++-4.9-dev libtsan0 libubsan0 linux-libc-dev manpages-dev
Paquetes sugeridos:
  binutils-doc cpp-doc gcc-4.9-locales g++-multilib g++-4.9-multilib gcc-4.9-doc
  libstdc++6-4.9-dbg gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc
  gcc-4.9-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg
  liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg glibc-doc
  libstdc++-4.9-doc
Se instalarán los siguientes paquetes NUEVOS:
  binutils cpp cpp-4.9 g++ g++-4.9 gcc gcc-4.9 libasan1 libatomic1 libc-dev-bin libc6-dev
  libcilkrts5 libcloog-isl4 libgcc-4.9-dev libgomp1 libisl10 libitm1 liblsan0 libmpc3
  libmpfr4 libquadmath0 libstdc++-4.9-dev libtsan0 libubsan0 linux-libc-dev manpages-dev
0 actualizados, 26 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 45,6 MB de archivos.
Se utilizarán 136 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n] s

Por fin había superado el primer tropezón, ahora faltaba el segundo:

root@srv----:/tmp/client# ./db2prereqcheck 
WARNING:
   The 32 bit library file libstdc++.so.6 is not found on the system. 
   32-bit applications may be affected.

Éste ya era obvio, hay que empezar activando el soporte multiplataforma y agregar la arquitectura i386:

root@srv----:/tmp/client# dpkg --add-architecture i386 && apt-get update

Por último instalar libstdc++ para la arquitectura i386:

root@srv----:/tmp/client# apt-get install libstdc++6:i386
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
El paquete indicado a continuación se instaló de forma automática y ya no es necesario.
  php5-ldap
Utilice «apt-get autoremove» para eliminarlo.
Se instalarán los siguientes paquetes extras:
  gcc-4.9-base:i386 libc6:i386 libc6-i686:i386 libgcc1:i386
Paquetes sugeridos:
  glibc-doc:i386 locales:i386
Se instalarán los siguientes paquetes NUEVOS:
  gcc-4.9-base:i386 libc6:i386 libc6-i686:i386 libgcc1:i386 libstdc++6:i386
0 actualizados, 5 nuevos se instalarán, 0 para eliminar y 83 no actualizados.
Se necesita descargar 5.639 kB de archivos.
Se utilizarán 13,9 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n] s

Finalmente los requerimientos fueron satisfechos y la instalación pudo comenzar. Espero que le sirva de ayuda a quien lo necesite.