Instalar programas para Windows en Linux

Internet Explorer 6 instalado como aplicacion nativa en Ubuntu linux 8.04
Internet Explorer 6 instalado como aplicacion nativa en Ubuntu linux 8.04

Ya se han escritos cientos o miles de articulos sobre este tema: como instalar el internet explorer en Linux, como instalar el photoshop en Ubuntu, como instalar fuentes de Windows en OpenSuse, etc… La idea de este post es presentarles una herramienta que les va a ayudar muchiiiisimo a hacer esta tarea, te manera totalmente grafica, rapida y simple. Veamos como es esto

Es muy comun querer utilizar algunos programas que solo existen bajo Windows, pero en Linux. Hay varios motivos para esto, aqui les listo los que yo creo son mas representativos:

  • porque nos hemos acostumbrados a una herramienta en particular y no tenemos ganas de migrar a una distinta (por ejemplo, Winamp)
  • Porque las versiones abiertas no ofrecen las mismas prestaciones (Photoshop, Corel Draw, Illustrator…)
  • Porque necesitamos ver como nuestros desarrollos se comportan con esos programas (por ejemplo, Internet Explorer)
  • porque simplemente no existen versiones para Linux (por ejemplo, el compilador e IDE del lenguaje de simulacion GPSS, http://www.minutemansoftware.com)

El problema es que el codigo ejecutable de Windows (programas Win32) no es compatible para Linux, y viceversa, con lo cual no se pueden ejecutar directamente (con un doble clic, como todos quisieramos). Tenemos entonces dos opciones bien claras:

  1. Instalamos un software de virtualizacion, que nos permita instalar un Windows virtual dentro de nuestro Linux. Yo estoy muy acostumbrado al VirtualBox, esta re bueno y anda de maravillas. Peeeero, el unico problema aqui es que tenemos que instalar TODO un Windows completito, y luego el o los programas dentro; es medio denso, ocupa bastantes recursos y no siempre es viable
  2. Le mentimos a nuestro programita Win32, y le hacemos creer que se esta ejecutando en Windows. Esto quiere decir, le damos todo el entorno de ejecucion que el programa necesita, para que pueda ejecutarse y utilizar los servicios que necesita del Sistema Operativo, y que ni se entere que quien le esta brindando estos servicios no es Windows.

Vamos a ir por la opcion 2. En Linux, esto se hace con Wine (Wine is not an emulator); lo que hace este programa es ofrecerle a las aplicaciones Win32 toda la API (en terminos terrenales, toda las funciones y servicios) de Windows y transformar de alguna manera los pedidos al sistema que hace el programa de la version Windows a la version Linux. Uhhh! que quilombo!

No, para nada. Veamos un ejemplo bien simple: supongamos que tenemos un programa que tiene que «dibujar un menu». En Windows, cada vez que un programa necesita hacer esto, hace una invocacion al sistema mediante las llamadas MFC (Microsoft Foundation Classes) diciendo «haceme un boton de tal alto, tal ancho, tal color y con tal texto» . Supongamos que eso lo hace mediante una llamada al sistema con el siguiente formato:

nuevo_boton(alto,ancho,color, texto);

El problema es que Linux no entiende esto! Para Linux, la llamada se hace con una funcion botoncito mucho mas simple, y luego se debe indicar como sera este boton. Por ejemplo:

boton = nuevo_boton_linux();

boton.color = un_color

boton.texto = un_texto

Mas alla del ejemplo pavo (y totalmente inventado, las cosas no son tan asi), sirve el ejemplo para entender lo que esta sucediendo: lo que hace Wine es basicamente recibir la invocacion del programa Win32, de la forma nuevo_boton(alto,ancho,color, texto) , y transformarla en invocaciones que Linux si entiende. Parece una idea muy innovadora, pero no es tan asi… Esto lo hacemos todos los dias, cuando utilizamos un adaptador de tres patas planas a dos patas redondas: lo que hacemos es «hacer que dos interfases distintas e incompatibles puedan conectarse y trabajar juntas«.

Buensiiiisima la teoria… pero como uso Wine?

La instalacion de Wine es muy simple, bajo Ubuntu solo requiere un

sudo apt-get install wine

y listo! la mayoria de las distribuciones lo trae en sus repositorios, asi que podemos utilizar cualquier gestor de paquetes.

El uso es bien simple, desde la linea de comandos escribimos: wine programa.exe y listo.  Existen otros programas que hacen mas o menos lo mismo, como Cedega o Crossover (hecho sobre el mismo Wine), algunos gratuitos y otros pagos, no vamos a entrar en detalles pero ofrecen mas o menos lo mismo de manera mas bonita. Pero la cosa no termina aca…

Instalando y usando aplicaciones comunes, a un clic de distancia.

El 99.99% de las personas que instalan Wine, lo hacen para instalar algunas de las aplicaciones mas comunes del mundo:

MS Office, Winamp, photoshop, Internet Explorer, MS Fonts, Visual Stucio, juegos tipo Half Live, Quake4, etc..

Existe un programa, llamado Wine-doors, que nos permite instalar todos estos programas con un simple clic. Este programa se encarga de conseguir la aplicacion que queremos instalar, descargarla e instalarla en nuestro sistema. Es todo grafico, muy bonito, y las opciones crecen dia a dia.

Para instalar Wine-doors en Ubuntu, es como siempre bien simple: sudo apt-get install wine-doors . Una vez instalado, simplemente vamos a Aplicaciones -> Wine -> Wine Doors y elegimos el o los programas a instalar.

Si tenemos el CD, podemos aprovechar el instalador ya que Wine-doors nos da una opcion para esto.

Tambien podemos actualizar los repositorios, controlar los procesos que ejecuta Wine, y otras opciones que no vienen al caso.

Les dejo unos screenshots.

7 comentarios sobre “Instalar programas para Windows en Linux

  1. gracias por tu post! tenes idea si se puede instalar 3d max en linux con esta aplicacion? autocad? sktechup? y este tipo de programas? estoy aprendiendo sobre Linux, y me gusta muchisimo y quisiera tenerlo como sistema operativo principal en mi maquina, pero trabajo con estos programas y es un gran paso para mi cambiar de sistema operatico, pero queria estar seguro antes…gracias!

  2. gracias me sirvio,tengo una pregunta que em tiene en vilo ,se puede instalar microsoft office2007 desde la consola?( pero sin cd) gracias

    1. que quiere decir «sin cd» ? tenés los archivos de instalación? de ser así, con crossover no tendrías problema.
      Sino, quizás con Wine Doors lo puedas instalar, la verdad no lo se.

Deja un comentario