Entendiendo la multiarquitectura en Debian GNU/Linux con Citrix

Me doy perfecta cuenta de que el título es, cuando menos, confuso. Y está hecho aposta, debo añadir. El motivo: que este sencillo tutorial no da para comprender la multiarquitectura que han implantado en Debian, pero un poco sí que se acerca. Además, he conseguido aplicarlo para un programa concreto y muy orientado al mundo empresarial, el cliente Citrix pero me falta el que considero el caballo de batalla del ambiente doméstico, Skype.

Quien quiera ampliar sus conocimientos sobre la multiarquitectura, en el wiki de Debian tiene la mejor de las guías.

Este cambio de arquitectura ha venido propiciado porque he jubilado a mi vieja estación de trabajo (¡gracias por todo! No vuelvas ;)) y me han dado otro ordenador, más moderno, con un procesador de 64 bits. Por supuesto, he instalado Debian para 64 bits (amd64), configurado y actualizado todo desde cero, como corresponde. Con algunos programas tuve más lío (firefox+flash+java), simplemente por no recordar que había cambiado de arquitectura pero, una vez unificados criterios, todo funcionó como se esperaba.

Hasta llegar al cliente ICA.

No me extiendo más. Como es de suponer, se parte con un equipo actualizado correctamente (en mi caso, con sid), sin paquetes atascados ni cosas raras.

Lo primero es añadir la segunda arquitectura a dpkg y actualizar la base de datos de paquetes.

$ sudo dpkg --add-architecture i386
$ sudo aptitude update

Después instalamos la dependencia más peliaguda de Citrix, ia32-libs. Ahora nos tiene que dejar, sin más. Como estos paquetes sólo están disponibles para una arquitectura, no hay que especificar nada.

$ sudo aptitude install ia32-libs ia32-libs-gtk ia32-libs-gtk-i386 ia32-libs-i386

Seguimos instalando dependencias.

$ sudo aptitude install libmotif4:i386

En esta ocasión hay que especificar la arquitectura para que no instale la de amd64, que sería la opción por defecto. En caso de que esto suceda, la ejecución del programa dará el siguiente error:

/opt/Citrix/ICAClient/wfcmgr: error while loading shared libraries: libXm.so.4: wrong ELF class: ELFCLASS64

Y, por último, instalamos nspluginwrapper para 64 bits. Al igual que con que libmotfi4, la instalación de la arquitectura incorrecta se traduciría en un bonito error. Este paquete, además, he tenido que bajarlo directamente de la web de Debian porque sólo está disponible para squeeze.

$ sudo dpkg -i ./nspluginwrapper_1.3.0-1_amd64.deb

Cumplidas las dependencias (¡por fin!), ya podemos instalar el paquete oficial de Citrix para 64 bits, sin que reviente por algún sitio:

$ sudo dpkg -i icaclient_12.1.0_amd64.deb

Es probable que de un error durante la instalación, con salida de error 2:

dpkg: error processing icaclient (--configure):
  el subproceso instalado el script post-installation devolvió el código de salida de error 2

Si buscamos el error en el script de post-instalación, veremos que el cliente ICA, paradójicamente, no está preparado para reconocer los sistemas de esta arquitectura. Se puede obviar puesto que el software está instalado y ya funciona pero, aparecerá en todos las actualizaciones posteriores, como un error. Por eso recomiendo perder dos minutos y, siguiendo las explicaciones de la Inet Survival Guide, editar el fichero DEBIAN/postinst y comentar la línea 2670, es decir, dejarla de esta guisa:

#exit 2

Una vez compilado el paquete, se instala de nuevo, la salida será limpia esta vez.

En este punto, sólo queda iniciar synapse y buscar Citrix Receiver , paladeando el momento.

4 ideas sobre “Entendiendo la multiarquitectura en Debian GNU/Linux con Citrix”

Los comentarios están cerrados.