Difference between revisions 106021 and 138044 on eswikiversity

----
'''¿Qué es Wine?'''

Las siglas recursivas “Wine” “Wine Is Not an Emulator” expresan lo qué es Wine en
realidad: no es un emulador del sistema operativo, sino una capa de compatibilidad o una capa
de traducción (un cargador del programa), capaz de ejecutar aplicaciones Windows en Linux y
otros sistemas operativos con POSIX. Estos programas de Windows corriendo bajo Linux
actúan como programas nativos con un aspecto y tacto similar.

'''¿Qué es lo que soporta?'''

Soporta: ejecución de programas DOS, Windows 3.x y Win32. Soportes de llamadas de
Win16 y Win32. Soporte para código 16 y 32 Bits. Soporte para drivers de impresoras W 3.1.
Soporte para juegos basados en DirectX . Soportes de modems y puertos seriales. Soporte de
escáner APSI . Soporte en WinSock TCP/IP Windows.

'''¿Cómo entenderlo mejor?'''

Linux ha ofrecido toda una serie de opciones a aquellos usuarios que necesiten ejecutar
un programa de Windows de vez en cuando. Se pueden emular maquinas completas tales como
Vmware o Quemu. Este tipo de soluciones funcionan bastante bien, pero también tienen sus
desventajas.
-Por un lado los usuarios han de comprar tanto el entorno de emulación como el sistema
operativo.
-Ocupan un valioso espacio en la maquina anfitrión, limitando el rendimiento y el consumo de
memoria.
En este último punto cabe destacar que un programa medio funcionando en un emulador puede
lograr solo de un 50% a un 80% de su rendimiento trabajando en modo nativo, incluso
incrementando el uso de memoria RAM estática en el S.O. invitado.
Es por ello que una alternativa a la emulación es simplemente suministrar las bibliotecas de
Windows para el sistema Linux. De este modo, en teoría, permitiría que el programa funcionara
en Linux. Esto sería un tanto complicado.

'''¿Por qué sería complicado?'''

Primero, las funciones de biblioteca de Windows, conocidas como API (interfaz de
programación de aplicación), no están adecuadamente documentadas. Y en muchos casos, sobre
todo los programas escritos por Microsoft, llaman a funciones indocumentadas. Como hay un
montón de redundancia en la API, uno puede sospechar que Microsoft realmente ha perdido la
pista a los millares de llamadas al sistema y a sus parámetros, extremadamente complejos de
invocar.


'''¿Cómo atenuar este problema?'''

El sistema de archivos de Linux es absolutamente diferente del sistema de archivos
de Windows. Para atenuar este problema, sería útil tener la capacidad de utilizar las bibliotecas
originales de
Windows. Pero esto significa poseer una licencia de Windows, pero la mayoría de la gente
tiene una de todos modos.
Es por ello que el proyecto de código abierto Wine proporciona funcionalidad de programación
y también integra las bibliotecas originales.


'''

¿Cuándo se inició Wine?'''

El proyecto Wine se inicio en 1993 como una forma de apoyar a los programas de
Windows 3.1 corriendo sobre Linux. Bob Amstadf fue el primer coordinador. Wine todavía está
en desarrollo, y todavía no está adecuado para uso general. Sin embargo, a muchas personas les
resulta útil en la gestión de un número creciente de programas de Windows.

'''¿Cómo identificar el logotipo de Wine?'''

Es tan fácil como una copa de ''vino.''


'''¿Cuál es la página principal de Wine?'''

''http://www.winehq.org/''

Ésta es la página en la cuál podremos acceder a un poco de información acerca de esta
aplicación, a la vez de poder descargarnos la aplicación y a resolver nuestras dudas. Este portal
está documentada en ingles, pero existen paginas que nos pueden traducir si andamos un poco
flojos en este idioma.
En el apartado de descargas, la diversidad es elevada ya que existen distintas distribuciones las
cuales tienen su apartado de aplicación. Existen tanto para Ubuntu, Suse, Debian…

'''¿Un link de descarga?'''

''http://prdownloads.sourceforge.net/wine''

----

== Avanzado ==

'''¿Cómo se instala?'''

Los usuarios de Windows están acostumbrados a instalar programas con archivos
ejecutables o .EXE. En Linux, en cambio, hay variedad de instaladores según la distribución
que uses, como DEB, RPM, BIN o TAR.
Podemos encontrar diferentes métodos para la instalación de Wine en nuestro Sistema
Operativo. Podríamos usar paquetes Synaptic, descargarnos el paquete e instalar, mediante el
terminal … Es por ello que nombraremos algunos métodos para que nos sea más fácil elegir.
Si queremos instalar Wine en Debian y demás distribuciones derivadas de ella como es el caso
de Ubuntu, Aquí tenemos la mejor forma de instalarlo en pocos pasos.

Método 1 - Instalar Wine desde el terminal:

Primer paso, abrir el terminal

Segundo paso, escribir: sudo apt-get install wine

Tercer paso, pulsar la tecla enter/entrar:

Esa sería la forma más fácil de poder tener Wine a nuestra disposición. En la web aparecen
cantidad de métodos, que podríamos mirar tecleando en Google “Instalar wine”.

Método 2 - Otro método sería el siguiente:

Podríamos bajarnos el código fuente de la aplicación para así poderlo instalar en
cualquier distribución Linux y para así tener la versión mas actual. Sin embargo como ya
sabemos, instalar un programa a partir del código fuente no es tarea fácil.
Antes de empezar, ¿qué es código fuente? El código fuente es el programa tal como lo escribió
el programador. De esta forma podemos editarlo y adaptar la aplicación a sus necesidades. Por
otra parte, permite instalarlo en diferentes sistemas operativos, o en este caso, cualquier
distribución Linux. Sin embargo, el ordenador no entiende este código fuente, así que
tendremos que compilarlo usando el terminal.

Después de bajarnos el código fuente tendremos que descomprimirlo usando las herramientas
necesarias. El código suele venir en ZIP, RAR, TAR.GZ y TAR.BZ. Un ejemplo seria:
tar -xvjf brasero-0.7.0.tar.bz2

Estos comandos crean una carpeta con el código fuente, donde tendremos en cuenta los
siguientes archivos: README e INSTALL.

Después deberíamos resolver las dependencias, es por ello que leeremos el README por si el
programador nos cuenta algún paso que deberíamos hacer. Esto hay que hacerlo siempre.
Para instalar el programa desde el terminal dependerá de la distribución que usemos. En
Ubuntu/Debian se puede usar la herramienta aptitude. Por ejemplo, el autor nos dice que su
programa usa la librería GTK para Java, libgtk-java. Pues escribimos en el terminal:

>sudo aptitude install libgtk-java

Una vez resueltas las dependencias habrá terminado el “trabajo duro”.
El proceso habitual suele consistir en:
>make

>sudo make install

Como se ha comentado con anterioridad, dependiendo el tipo de distribución que tengamos,
tendremos que invertir un poco de tiempo para poder encontrar los comandos necesarios.

'''¿Qué es la depuración?'''

Tarde o temprano los usuarios de Wine se las verán con el depurador winedbg. El
depurador aparece cuando una aplicación que está funcionando en Wine se cuelga. Si no se
tiene interés en investigar los motivos, basta con pararlo. Si se prefiere analizar el problema, se
puede teclear bt para solicitar información.
La mejor manera de tratar con los programas traviesos es probar primero varias configuraciones
en la versión Windows. Algunos programas son muy exigentes con la ruta desde donde se
arrancan. Otra vez, hay que intentar arrancar los programas desde su propio directorio,
proporcionando una ruta Windows completa o intentando la ruta Linux . Aunque se supone que
los ejemplos de estas rutas son equivalentes, un programa Windows no tiene porqué ver las
cosas de la misma manera.

'''¿Cómo configurar Wine?'''

La utilidad Configuración del emulador Wine puede ser iniciada de varias maneras:

Modo Gráfico:
Desde el menú del entorno de escritorio Gnome

Aplicaciones -> Herramientas del Sistema -> Configuración del emulador WINE

Desde el lanzador de aplicaciones de Gnome Presionando <Atl+F2> se
despliega la ventana "Ejecutar una aplicación". Allí puede escribirse la palabra winecfg en el
campo disponible o seleccionar la aplicación deseada de la lista que ofrece debajo. Presionar
<Ejecutar>.

Línea de Comando:


Desde el Terminal (este comando ejecutará la aplicación en el entorno gráfico GNOME):
$ winecfg &

'''¿Si queremos ayuda?'''

Si se busca ayuda con Wine, el archivo de la lista de usuarios de Wine tiene un montón
de hilos de discusión con preguntas y respuestas sobre los problemas en Wine y, por supuesto,
las nuevas preguntas son bienvenidas.

Foro de Wine para sus dudas: http://www.winehq.org/site/forums

'''¿Cómo parchear Wine y compilarlo posteriormente?'''

Si únicamente se trata de modificar el código fuente de Wine, el comando patch nos lo
hace más sencillo todavía. Ni siquiera es necesario saber lenguaje C para ello. En el fondo, lo
que se hace es modificar el código fuente de un programa.

Para la realización de ésta prueba vamos a aplicar un parche que nos va a permitir jugar a Call
of Dutty 4 . El parche corrige el error 'video card or driver not support separate alpha blend'.
Paso1: Aplicar el parche
Previamente, necesitaremos tener los siguientes paquetes instalados. Para poder hacerlo,
utilizamos el comando urpmi. La ejecución simple de este comando se usa para instalar un
paquete:

[jose@localhost ~]$ urpmi gcc patch git-core
A continuación, necesitamos descargar el parche, hay dos; el que vamos a usar es el que sirve
para versiones de Wine superiores a la 0.9.58. Ya que nosotros nos vamos a descargar Wine
0.9.60.
Parche: si el navegador no da la posibilidad de descargarlo, se selecciona todo el texto, y se
copia dentro de un nuevo archivo de texto que llamaremos wine-0.9.59-3dmark.patch. O bien
Archivo---Guardar como.
Wine: se recomienda descargar la versión wine 0.9.60.
Descomprimimos el wine 0.9.60 en alguna carpeta, en el ejemplo se descomprime en
/home/jose/Documentos/wine-0.9.60.
Dentro de esta carpeta, debemos guardar el parche wine-0.9.59-3dmark.patch.
Ahora abrimos una consola, nos movemos al directorio /home/jose/Documentos/wine-0.9.60 y
ejecutamos el comando match:
[jose@localhost ~]$ cd /home/jose/Documentos/wine-0.9.60/
[jose@localhost wine-0.9.60]$ patch -p1 < wine-0.9.59-3dmark.patch
patching file dlls/wined3d/directx.c
Hunk #1 succeeded at 846 (offset 7 lines).
Hunk #2 succeeded at 2851 (offset 49 lines).
Hunk #3 succeeded at 3116 (offset 49 lines).
Hunk #4 succeeded at 3134 (offset 49 lines).
[jose@localhost wine-0.9.60]$
Ya tenemos el Wine parcheado. Editando el fichero dlls/wined3d/directx.c, podemos ver que no
es igual que antes de parchear. Hemos añadido y cambiado algunas líneas. El cambio es
pequeño pero suficiente para permitirnos jugar a Call o Dutty 4 en linux.
Paso2: Compilar e instalar Wine
Ahora vamos a compilar e instalar Wine. Para que se pueda compilar correctamente,
necesitaremos las siguientes dependencias. Instalamos, al igual que antes, con urpmi:
# libalsa2-devel
# libmesagl1
# libmesagl1-devel
# mesa-common-devel
# mesa-source
# bison
# flex
# alsa-lib-devel
# cups-devel
# dbus-devel
# esound-devel
# fontconfig-devel
# freetype-devel
# libgphoto-devel
# hal-devel
# isdn4k-utils-devel
# lcms-devel
# libICE-devel
# libjpeg-devel
# libpng-devel
# libsane1-devel
# libusb-devel
# libxrandr2-devel
# libxcomposite1-devel
# libxinerama1-devel
# libXcursor-devel
# libXi-devel
# libxslt-devel
# libXxf86vm-devel
# ncurses-devel
# openldap-devel
# openssl-devel
# pkgconfig
# libmesagl1-devel
# libxorg-x11-devel
Una vez todo correcto, ejecutamos el configure para verificar requisitos:
[jose@localhost wine-0.9.60]$ sh configure --prefix=/home/jose/Documentos/wine1.
Si el configure no ha ido bien, es que falta alguna dependencia. Afortunadamente, siempre dice
cual es la que nos falta.

La opción --prefix= nos permite instalar el programa en la ruta que queramos. Esto se hace
porque en el ejemplo se tiene otro wine instalado con urpmi en /usr/.
No es necesario prescindir de él y de esta manera podemos tener los dos wine conviviendo en el
ordenador. Vamos a tener este wine modificado en /home/jose/Documentos/wine1.
Si configure ha ido bien, lo compilamos e instalamos:
[jose@localhost wine-0.9.60]$ make depend && make
[jose@localhost wine-0.9.60]$ make install

Paso3: Usando el Wine modificado
Este Wine que hemos compilado tiene ciertos cambios en el fichero dlls/wined3d/directx.c. Esto
hace que tengamos que crear de nuevo todas las dlls. Así que debemos crear de nuevo el .wine
de nuestro home, renombrar el viejo .wine y ejecutar winecfg para crearlo de nuevo.
Debemos recordar que ahora Wine esta aquí: /home/jose/Documentos/wine1.
[jose@localhost ~]$ /home/jose/Documentos/wine1/bin/winecfg
Y para ejecutar algo con este wine:

[jose@localhost ~]$ /home/jose/Documentos/wine1/bin/wine nombredeexe.exe.

'''¿Algunas de sus características?'''

• Apoyo para el funcionamiento de Win32 (Windows 95/98, NT/2000/XP), Win16 (Win 3.1) y
programas de DOS.
• Opción de uso de archivos DLL de proveedores externos (como los incluidos con Windows).
• Características basadas en X11 en visualización de gráficos, que permite visualización a
distancia a cualquier terminal de X, así como una consola en modo texto.
• Escritorio en una mezcla de ventanas.
• Soporte para juegos DirectX
• Buen apoyo para los diversos controladores de sonido OSS y ALSA incluido.
• Soporte para dispositivos de entrada alternativos.
• Impresión: PostScript de interfaz de controlador (psdrv) estándar de Unix para los servicios de
impresión PostScript.
----

== Referencias ==

http://www.linuxespanol.com/ftopic104.php

http://www.linux-magazine.es/issue/10/Wine.pdf

http://es.wikipedia.org/wiki/Wine

http://www.winehq.org/

http://www.guia-ubuntu.org/index.php?title=Wine

http://www.macuarium.com/macuarium/actual/especiales/2002_11_29_wine.shtml

http://120linux.com/instalar-wine/

http://leumasblog.wordpress.com/2006/08/28/como-instalar-wine-tools-en-ubuntu-linux/

http://blogdrake.net/node/12055

http://www.ayuda-internet.net/tutoriales/linux/wine/index.html

http://wiki.canaima.softwarelibre.gob.ve/wiki/index.php/Configuración_del_emulador_
WINE#Modos_de_uso

http://ftp.winehq.org/pub/wine/docs/en/wineusr-guide.pdf


[[Categoría:Informática]]

[[cs:Wine]]