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”
Buenas, aunque como dices el titulo puede parecer lioso, el contenido puede ser de ayuda para otras aplicaciones como también comentas, Skype, y todo gracias al soporte multiarquitectura que nos brinda Debian.
Aunque yo no soy muy «fan» de estas mezclas, no me gusta ni añadir repositorios que no están en Debían, mucho menos añadir soporte para otra arquitectura, pero son mas bien manías cogidas con el tiempo, pero gran solución para un problema mas común de lo que algunos se piensan.
Un saludo 😉
yo tampoco soy amigo de andar mezclando ramas ni arquitecturas pero, mientras no hayamos abandonado al viejo y querido i386, tocará hacer cosas como esta para mantener compatibilidades. Y, en mi modesta opinión de novato con el multiarch, no está nada mal. Es sencillo, versátil y sólo tienes que mantener la cabeza clara y saber a donde conducen las mezclas.
Saludos
Buen post Diego. Efectivamente a pocos de aquí nos gusta andar mezclando cuestiones que te pueden dar dolor de cabeza pero….a más de un amigo de por aquí (o a mi muy pronto) me puede quitar algún de cabeza 😉
Gracias dabo. Estoy dejando pasar unos días antes de enfrentarme a skype porque, supongo, antes de quitar preocupaciones, dará dolor de cabeza ;).