Estos días hemos estado trabajando en un proyecto piloto de migración de esritorios Windows XP a Linux. El objectivo es eliminar todas las copias de Windows del parque de PCs de nuestro cliente.

La distribución de Linux que hemos escogido és LMDE, l’Edición Debian de Linux Mint. Se trata de una rolling release de Debian testing, que aporta un escritorio mas atractivo que el Gnome 2 pelado de Debian Squeeze.

Estos son los apuntes de lo que hemos hecho.

LMDE Update pack 3

Una vez instalado el LMDE 201109 Gnome 64-bit se debe actualitzar con el Update Pack 3. Para ello debemos modificar el /etc/apt/sources.list así:

# /etc/apt/sources.list
deb http://packages.linuxmint.com/ debian main upstream import
deb http://debian.linuxmint.com/latest testing main contrib non-free
deb http://debian.linuxmint.com/latest/security testing/updates main contrib non-free
deb http://debian.linuxmint.com/latest/multimedia testing main non-free

y hacer:

sudo apt-get update && sudo apt-get dist-upgrade

si el proceso se encalla con este error:

E: /var/cache/apt/archives/gstreamer0.10-plugins-bad_0.10.22-3_amd64.deb: trying to overwrite '/usr/lib/gstreamer-0.10/libgstxvid.so', which is also in package gstreamer0.10-plugins-really-bad 0.10.22-0.1

debemos forzar la instalación del paquete gstreamer0.10-plugins-bad a mano:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/gstreamer0.10-plugins-bad_0.10.22-3_amd64.deb
sudo apt-get install
sudo apt-get dist-upgrade

Wine

Ya que en Debian Wheezy no hay wine, y la versión de Squeeze es un poco vieja, hemos optado por instalar des de lamaresh.net siguiendo seu repositorio:

# /etc/apt/sources.list.d/wine.list
deb http://www.lamaresh.net/apt squeeze main

y lo instalamos con:

sudo apt-get install wine wine-gecko
sudo defoma-app purge libwmf0.2-7 # (recomendado por el dpkg)

AutoCAD

Como alternativa gratuita a AutoCAD instalamos el DraftSight para Linux de Dassault Systèmes. No es software libre y requiere que el usuario se registre para obtener una llicencia de uso gratuita, pero permite trabajar con archivos DWG y es muy similar desde el punto de vista del usuario.

Firefox

El Firefox que viene con el Mint nos da muchos problemas y decidimos instalar el Iceweasel de el equipo Mozilla de Debian, que siempre está en la última versión y funciona mejor. Seguimos su repositorio:

# /etc/apt/sources.list.d/iceweasel.list
deb http://backports.debian.org/debian-backports squeeze-backports main
deb http://mozilla.debian.net/ squeeze-backports iceweasel-release

eliminamos el Firefox de LMDE y instalamos el Iceweasel:

apt-get remove firefox
apt-get install -t squeeze-backports iceweasel iceweasel-l10n-ca

Internet Explorer

La parte que mas problemas nos a traído ha sido hacer funcionar una aplicación web diseñada para funcionar solo en Internet Explorer y Jinitiator. Hemos intentado varias estrategias:

  • Ejecutar el Internet Explorer 6 con Wine mediante winetricks. Esta opción no permite instalar certificados de cliente.
  • Ejecutar el Internet Explorer 6 con Wine mediante el instalador ie4linux. Esta permite instalar certificados de cliente, pero luego el Jinitiator no funciona.
  • Implementar varios hacks en Firefox para que se comporte como un Internet Explorer: modificar el ‘User-agent’, utilizar Java estándar en vez de Jinitiator, hacer compatibles les páginas que genera el servidor con un script de greasemonkey, etc.

Por desgracia ninguna de ellas funciona al 100%. Esto significa, en resumen, que necesitaremos al menos una licencia de Windows. Y todo gracias a una aplicación web que solo funciona con el navegador Internet Explorer.

Acceder a Windows XP con Seamless RDP

Así pués nos vemos obligados a mantener una máquina con Windows XP con el único objetivo de ejecutar Internet Explorer. Como nuestro cliente dispone de un servidor Linux con KVM, decidimos poner un Windows XP virtualizado en el servidor Linux. Así no hace falta cargar la máquina virtual en el PC cada vez que el usuario quiera utilizar Internet Explorer. La máquina virtual estará siempre funcionando y lista para aceptar conexiones. Des de Linux accederemos al Internet Explorer de la máquina virtual Windows XP mediante el protocolo RDP (Remote Desktop Services, antes conocido como Terminal Services) de Microsoft con el cliente rdesktop.

El concepto de acceder a una solo ventana des de Internet Explorer, en contraposición acceder al escritorio entero, se llama “seamless RDP”. Para conseguir-lo, en el Windows XP, descargamos el SeamlessRDP y lo descomprimimos eb C:\seamlessrdp. También es necesario que los usuarios puedan conectar de forma remota. Esto se activa en “Mi PC -> Propiedades -> Remoto -> Permitir que los usuarios se conecten de manera remota”.

Ahora ya podemos abrir el Internet Explorer desde Linux con rdesktop:

rdesktop -A -s "c:\\seamlessrdp\\seamlessrdpshell.exe C:\\Archivos de Programa\\Internet Explorer\\iexplore.exe" -k es -u user -p secret 192.168.x.x

Tunning del Seamless RDP a Debian

La versión de rdesktop que lleva el LMDE está afectada per un bug que hace que se muestre un doble marco en la ventana. Finalmente usamos una solución alternativa del bug que implica configurar y utilitzar el Compiz como gestor de ventanas.

En el'”editor de la configuración de compiz” activamos “regex matching”. Activamos también “decoración de la ventana” y en el campo “Decoration Windows” ponemos:

!(class=SeamlessRDP)

Por último, activamos el compiz con:

gconftool-2 --type string --set /desktop/gnome/session/required_components/windowmanager compiz

Windows XP con varias sesiones RDP concurrentes

Si queremos utilizar el Internet Explorer des de varios PC nos encontraremos con el problema de que en Windows XP no se permiten conexiones RDP concurrentes. Si un usuario inicia sesión RDP se cerrarán todas las demás que esten abiertas en esos momentos.

Sería posible saltar esta limitación aplicando este parche a termsrv.dll. Se trata de unas modificaciones que Microsoft publicó por error en una beta del SP2 de Windows XP y que eliminan la limitación de una única sesión RDP simultánea. Con esta modificación una sola instalación de Windows XP podría dar servicio RDP a todos los usuarios Linux de la red local.

Impresora Canon MP620

Para hacer funcionar una Canon MP620 hemos usado este script.

wget http://downloads.bkintegration.com/mp620-630/mp620-630univ
chmod +x mp620-630univ
sudo ./mp620-630univ

DOSBox

Como parte de la migración hemos tenido que hacer funcionar un programa MS-DOS. Port suerte tenemos el emulador DOSBox en los repositorios de Debian. Una vez instalado configuramos algunos parámetros en ~/.dosbox/dosbox-0.74.conf para que, por ejemplo, se muestre en pantalla completa:

# pantalla completa
fullscreen=true
# el teclado
keyboardlayout=es
[autoexec]
# hacer que la c:\ sea ~/dosbox_c
mount c /home/user/dosbox_c

Conclusiones

Los usuarios aceptan con naturalidad el cambio si todo funciona perfectamente: impresoras, escáneres, acceso a los servidores, la resolución de la pantalla, etc. todo hasta el mínimo detalle. La aceptación es mayor en el caso de que los usuarios ya usaban Firefox, Thunderbird y LibreOffice o OpenOffice.

La substitución de los escritorios Windows por escritorios Linux es fácil si se acepta el hecho de que no puede ser una substitución completa. El 90% de las aplicaciones tienen un equivalente en Linux o bien pueden funcionar sobre Wine, pero el 10% restante no. Esto no es ningún problema si aceptamos mantener una máquina Windows donde poner las aplicaciones que no funcionen de ninguna manera en Linux.

Pasar de n escritorios con Windows a uno de solo permite ahorrar en licencias y gastos de mantenimiento.

Las aplicaciones que no funcionan sobre Linux son, irónicamente, aplicaciones web.