Aquests dies hem estat enfeinats amb el projecte pilot d’una migració d’escriptoris Windows XP cap a Linux. L’objectiu és eliminar totes les instal·lacions de Windows del parc de PCs.

La distribució de Linux que hem escollit és LMDE, l’Edició Debian de Linux Mint. Es tracta d’una rolling release de Debian testing, que porta un escriptori més atractiu que el Gnome 2 pelat de Debian Squeeze.

Aquests són alguns apunts de les coses que hem anat fent.

LMDE Update pack 3

Una vegada instal·lat el LMDE 201109 Gnome 64-bit cal actualitzar-lo amb l’Update Pack 3. Per fer-ho hem de modificar el /etc/apt/sources.list així:

# /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

i fer

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

si el procés es queda encallat amb aquest 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

cal forçar la instal·lació del paquet gstreamer0.10-plugins-bad a mà

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

Com que a Debian Wheezy no hi ha wine, i la versió d’Squeeze és una mica antiga, hem optat per instal·lar-lo des de lamaresh.net seguint el seu repositori:

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

i l’instal·lem amb

sudo apt-get install wine wine-gecko
sudo defoma-app purge libwmf0.2-7 # (recomanat pel dpkg)

AutoCAD

Com a alternativa gratuïta a l’AutoCAD instal·lem el DraftSight per Linux de Dassault Systèmes. No és programari lliure i requereix que l’usuari es registri per obtenir una llicència d’ús gratuïta, però permet treballar amb arxius DWG i és força similar per l’usuari.

Firefox

El Firefox que porta el Mint ens dóna molts problemes, decidim instal·lar l’Iceweasel de l’equip Mozilla de Debian, que sempre està a la última versió i funciona millor. Seguim el seu repositori:

# /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

eliminem el Firefox de LMDE i instal·lem el Iceweasel:

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

Internet Explorer

La part que ens ha donat més problemes ha sigut fer anar una aplicació web dissenyada per funcionar únicament amb Internet Explorer i Jinitiator. Hem provat totes aquestes estratègies:

  • Executar el Internet Explorer 6 amb Wine mitjançant winetricks. Aquesta opció no permet instal·lar certificats de client.
  • Executar el Internet Explorer 6 amb Wine mitjançant l’instal·lador ie4linux. Aquesta permet instal·lar certificats, però el Jinitiator no s’instal·la.
  • Fer varis hacks al Firefox perquè es comporti com un Internet Explorer: modificar el ‘User-agent’, utilitzar Java en comptes de Jinitiator, fer compatibles les pàgines que genera el servidor amb un script de greasemonkey, etc.

Malauradament cap d’elles ha funcionat al 100%. Això vol dir, en resum, que necessitarem almenys una llicència de Windows. I tot gràcies a una aplicació web que només funciona amb el navegador Internet Explorer.

Accedir a Windows XP amb Seamless RDP

Així doncs ens veiem obligats a mantenir un màquina amb Windows XP amb l’únic objectiu de fer funcionar un Internet Explorer. Com que el client disposa d’un servidor Linux amb KVM, decidim posar un Windows XP virtualitzat al sevidor Linux. Així no cal carregar la màquina virtual al PC de l’usuari cada vegada que aquest vulgui fer servir el Internet Explorer. La màquina virtual està sempre engegada i a punt per rebre connexions. Des del Linux accedirem al Internet Explorer de la màquina virtual Windows XP mitjançant el protocol RDP (Remote Desktop Services, abans conegut com a Terminal Services) de Microsoft amb el client rdesktop.

El concepte d’accedir a una sola finestra del Internet Explorer, i no a tot l’escriptori del Windows, s’anomena “seamless RDP”. Per aconseguir-ho, al Windows XP, descarreguem el SeamlessRDP i el descomprimim a C:\seamlessrdp. També és necessari que els usuaris es puguin connectar de forma remota activant-ho a “Mi PC -> Propiedades -> Remoto -> Permitir que los usuarios se conecten de manera remota”.

Ara ja podem obrir l’Internet Explorer des de Linux amb la comanda 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ó de rdesktop que porta el LMDE, està afectada per un bug que fa que es mostri un doble marc de finestra (el de Windows i el de Linux al voltant). Inclús es mostra un marc al desplegar els menús de les aplicacions. Per solucionar-ho provem d’instal·lar el rdesktop de Debian Squeeze, que és una versió anterior que no està afectada pel bug, però falla molt sovint. Finalment fem servir un solució alternativa del bug que implica configurar i utilitzar el Compiz com a gestor de finestres.

A l'”editor de la configuració de compiz” activar “regex matching”. Activar també “decoració de la finestra” i al camp “Decoration Windows” hi posem:

!(class=SeamlessRDP)

Per últim, activem el compiz amb:

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

Windows XP amb vàries sessions RDP concurrents

Si volem fer servir l’Internet Explorer des de varis PC ens trobarem amb el problema de que Windows XP, senzillament, no permet connexions concurrents. Així doncs si un usuari inicia sessió al Windows XP es tancaran totes les sessions RDP que hi pogués haver obertes en aquells moments. Tot i ser un sistema multi-usuari i ser tècnicament possible, el Windows XP te aquesta política de només permetre una única sessió RDP simultània.

Seria possible saltar-se aquesta limitació aplicant aquest pegat de termsrv.dll. Es tracta d’unes modificacions que Microsoft va publicar per error en una beta del SP2 de Windows XP i que elimina la limitació d’una única sessió RDP simultània. Amb aquesta modificació, amb una sola instal·lació Windows XP es podria donar servei RDP a tots els usuaris Linux de la xarxa local.

Impressora Canon MP620

Per fer funcionar una Canon MP620 ens hem valgut d’aquest script. Amb això pot fer tant d’impressora com de scanner.

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

DOSBox

Com a part de la migració des de Windows XP hem hagut de fer anar un programa de MS-DOS. Afortunadament tenim l’emulador DOSBox als repositoris de Debian. Una vegada instal·lat el DOSBox, configurem alguns paràmetres al nostre gust a ~/.dosbox/dosbox-0.74.conf, per exemple que engegui a pantalla complerta i tingui el teclat ben configurat:

# pantalla complerta
fullscreen=true
# el teclat
keyboardlayout=es
[autoexec]
# fer que la c:\ sigui ~/dosbox_c
mount c /home/user/dosbox_c

Conclusions

Els usuaris accepten amb naturalitat el canvi si tot funciona perfectament: impressores, escànners, accés als servidors, resolució de la pantalla, etc. fins al mínim detall. L’acceptació és major en els usuaris que ja utilitzaven Firefox, Thunderbird i LibreOffice o OpenOffice.

La substitució dels escriptoris Windows per escriptoris Linux és fàcil si s’accepta que no pot ser una substitució complerta. El 90% de les aplicacions Windows tenen un equivalent en Linux o bé poden funcionar sobre Wine, però el 10% no. Això no es cap problema si acceptem mantenir una màquina amb Windows per posar-hi les aplicacions que no funcionen de cap manera en Linux.

Passar de n escriptoris amb Windows a un de sol permet estalviar llicències i despeses de manteniment.

Les aplicacions que no funcionen sobre Linux son, irònicament, aplicacions web.