lunes, 13 de febrero de 2012

¿Como instalar multiples versiones de wine?



Para los que utilizamos wine, nos hemos dado cuenta, muchas veces al actualizar algunas de nuestras aplicaciones que funcionaban correctamente con una versión de wine deja de trabajar aunque lo hayamos reinstalado o borrado inclusive el directorio por defecto wine o algún wineprefix.

Esta guía pretende que el usuario pueda instalar cuanta versión se le de gana sin afectar el wine que tengamos instalado por defecto o inclusive si no tienes ninguna versión. En wine existen regresiones y se pueden utilizarse otros métodos pero para mi son menos prácticos por su complejidad de compilación, inclusive existe otra forma de instalar múltiples versiones de wine pero tendríamos conflicto y un ataque cerebral por su poca documentación jaja. Sin aburrirlos tanto vamos a la general. 


Como se que mas de alguno vera el post y desconoce el tema, pues le dejo una breve reseña de lo que es wine y para que sirve:

Generalidades

Wine (acrónimo recursivo en inglés para Wine Is Not an Emulator, que significa «Wine no es un emulador») es una reimplementación de la interfaz de programación de aplicaciones de Win16 y Win32 para sistemas operativos basados en Unix. Permite la ejecución de programas diseñados para MS-DOS, y las versiones de Microsoft Windows 3.11, 95, 98, Me, NT, 2000, XP, Vista y 7
El nombre Wine inicialmente fue un acrónimo para WINdows Emulator. Este significado fue cambiado posteriormente al acrónimo recursivo actual.
Wine provee de:
  • Un conjunto de herramientas de desarrollo para portar código fuente de aplicaciones Windows a Unix.
  • Un cargador de programas, el cual permite que muchas aplicaciones para Windows 2.0/3.x/9X/ME/NT/2000/XP/Vista y Win 7 se ejecuten sin modificarse en varios sistemas operativos unix-like como GNU/Linux, BSD, Solaris y Mac OS X


Manos a la obra


Instalamos dependencias

sed
wget
cabextract



Dependencias previas (Solo Fedora)


Desde una terminal (haciendo un copy y paste)



su -c 'yum -y install alsa-lib-devel cups-devel dbus-devel fontconfig-devel freetype-devel giflib-devel gnutls-devel gsm-devel hal-devel isdn4k-utils-devel lcms-devel libGLU-devel libICE-devel libjpeg-devel libpng-devel libSM-devel libusb-devel libv4l-devel libX11-devel libXau-devel libXcomposite-devel libXcursor-devel libXext-devel libXi-devel libXinerama-devel libxml2-devel libXrandr-devel libXrender-devel libxslt-devel libXt-devel libXv-devel libXxf86vm-devel mesa-libGL-devel ncurses-devel openal-devel openldap-devel openssl-devel pkgconfig sane-backends-devel xorg-x11-proto-devel gstreamer-plugins-base-devel libmpg123-devel libcapifax-devel libgphoto2-devel libudev-devel wine-devel opencl-utils-devel'

 


Instalacion de herramientas básicas de compilacion:



Fedora

su -c 'yum -y groupinstall "x-software-development"'
su -c 'yum -y groupinstall "Development Tools"'
su -c 'yum -y groupinstall "Development Libraries"'
su -c 'yum -y install binutils'



Ubuntu

sudo apt-get install build-essential
sudo apt-get build-dep wine




Opensuse

zypper in -t pattern
zypper install -t pattern devel_C_C++





VAMOS CON LA INSTALACIÓN

Desde una terminal SIN ser usuario root


Ejemplo:

Creamos el directorio de trabajo, en este caso yo utilizare un nombre que se me ocurrio .chachewine, oculto para no confundirnos.


mkdir -p $HOME/.chachewine




Buscamos la versión a instalar en la siguiente dirección de Sourceforge http://sourceforge.net/projects/wine/files/Source/




Copiamos la ruta de la versión, supongamos que necesitamos la versión 1.3.20


Lo descargamos utilizando wget, la opción -c nos ayuda a que si perdemos la descarga por algún apagón de luz, o se nos va la señal de Internet al volver a ejecutar el mismo comando continúe la descarga donde se quedo; la opción -P le estamos diciendo que lo descargue en la siguiente ruta, en este caso el directorio oculto .chachewine

wget -c -P $HOME/.chachewine http://sourceforge.net/projects/wine/files/Source/wine-1.3.20.tar.bz2


Cambiamos de directorio ".chachewine"

cd $HOME/.chachewine



Lo extraemos de la siguiente forma

tar -xjvf wine-1.3.20.tar.bz2 -C $HOME


Cambiamos al directorio de construcción

cd $HOME/wine-1.3.20


Procedemos a la instalación
Recorda NO debemos hacer este proceso como usuario root. Este proceso lleva tiempo, lo cual la paciencia es necesaria.


32 bits





64bits




Creamos enlaces simbólicos

Es necesario crearlos para que no se dificulte a la hora de invocar lo que queremos ejecutar o instalar desde la corriente versión de wine en este caso el ejemplo 1.3.20, en esta parte es necesario hacer bajo root o utilizando el comando sudo.



32 bits

Fedora y similares


su -c 'ln -s $HOME/wine-1.3.20/bin/wine $HOME/wine-1.3.20/bin/wine-1.3.20'

su -c 'ln -sf $HOME/wine-1.3.20/bin/wine /usr/bin/wine-1.3.20'

chmod a+x /usr/bin/wine-1.3.20




Ubuntu y similares


sudo ln -s $HOME/wine-1.3.20/bin/wine $HOME/wine-1.3.20/bin/wine-1.3.20

sudo ln -sf $HOME/wine-1.3.20/bin/wine /usr/bin/wine-1.3.20

chmod a+x /usr/bin/wine-1.3.20




Otras

su - root -c "$HOME/wine-1.3.20/bin/wine $HOME/wine-1.3.20/bin/wine-1.3.20"


su - root -c  "ln -sf $HOME/wine-1.3.20/bin/wine /usr/bin/wine-1.3.20"

chmod a+x /usr/bin/wine-1.3.20




64 bits

Fedora y similares


su -c 'ln -s $HOME/wine-1.3.20/bin/wine64 $HOME/wine-1.3.20/bin/wine-1.3.20'

su -c 'ln -sf $HOME/wine-1.3.20/bin/wine64 /usr/bin/wine-1.3.20'

chmod a+x /usr/bin/wine-1.3.20




Ubuntu y similares


sudo ln -s $HOME/wine-1.3.20/bin/wine64 $HOME/wine-1.3.20/bin/wine-1.3.20

sudo ln -sf $HOME/wine-1.3.20/bin/wine64 /usr/bin/wine-1.3.20

chmod a+x /usr/bin/wine-1.3.20


Otras

su - root -c "$HOME/wine-1.3.20/bin/wine64 $HOME/wine-1.3.20/bin/wine-1.3.20"

su - root -c  "ln -sf $HOME/wine-1.3.20/bin/wine64 /usr/bin/wine-1.3.20"

chmod a+x /usr/bin/wine-1.3.20




Borramos archivos inservibles


rm -rf $HOME/.chachewine/wine-1.3.20



Protegemos nuestro directorio donde quedará nuestro wine, en este caso en nuestro directorio personal bajo el nombre en este ejemplo wine-1.3.20, esto es para que no borremos accidentalmente el directorio.

chmod -R 555 $HOME/wine-1.3.20



¿Como ejecutar o instalar desde cualquier version de Wine?

Es necesario utilizar siempre un wineprefix ya que si tenemos instalada una version de wine de nuestra distribución por ejemplo, nos dará conflicto si tenemos usando el directorio.wine por defecto.



Creamos nuestro wineprefix .wine-1.3.20 (un directorio oculto en nuestro directorio personal y a la ves ejecutamos nuestro programa o juego, supongamos tenemos el archivo "juego.exe" en nuestro directorio personal





env WINEPREFIX="$HOME/.wine-1.3.20" wine-1.3.20 "$HOME/juego.exe"



La ruta marcada con negrilla es un ejemplo ($HOME/juego.exe), allí podes especificar la ruta de lo que quieres ejecutar, no olvides las comillas 



Creando un lanzador


Desde una terminal utilizando cualquier editor de texto (suponiendo que nos gusta gedit, otros simplemente cambiamos "gedit").


gedit mijuego.sh

Copiar y pegar y guardar lo siguiente, en el archivo en blanco anterior. (Este es un ejemplo)


#!/bin/bash

env WINEPREFIX="$HOME/.wine-1.3.20" wine-1.3.20 "C:\Program Files\Mijuego\juego.exe"

Le damos permisos de ejecución:

chmod +x  mijuego.sh




Problemas conocidos



Al instalar wine por defecto crea accesos directos en base a su ruta/dirección de wine por defecto o sea "/usr/bin/wine" , muchas veces es necesario editarlos y para ello utilizamos el comando sed

Ejemplo:


Supongamos tenemos un acceso directo en $HOME/.local/share/aplications/wine/Programas/chula.desktop


Para editar el archivo chula.desktop nos cambiamos al directorio

cd $HOME/.local/share/aplications/wine/Programas/



Reemplazamos "wine" por wine-1.3.20


sed -i 's/wine/wine-1.3.20/g' chula.desktop



Si el nombre tiene espacios de por medio es necesario incluir en la parte vacía una diagonal invertida



ejemplo:

Maria Mercedez 1.6.desktop
 
Maria\ Mercedez\ 1.6.desktop 






¿CÓMO DESINSTALAR?


Quitamos la protección al directorio de wine que esta en nuestro directorio personal.


chmod -R 775 $HOME/wine-1.3.20



Eliminamos los directorios y enlaces simbólicos 



Fedora y similares


 su -c 'rm -r $HOME/wine-1.3.20/'


 su -c 'rm -f /usr/bin/wine-1.3.20'


Ubuntu

sudo rm -r $HOME/wine-1.3.20/


sudo rm -f /usr/bin/wine-1.3.20


OTROS

su - root -c "rm -r $HOME/wine-1.3.20/"


su - root -c "rm -f /usr/bin/wine-1.3.20"







Listo ;)

Reacciones:

5 comentarios:

  1. Una prenguntilla, ¿en el caso de ser un Ubuntu x64 que librerías abría que instalar?

    ResponderEliminar
  2. Las mismas.
    sudo apt-get install build-essential
    sudo apt-get build-dep wine

    Estos paquetes automaticamente detectan tu arquitectura.

    ResponderEliminar
  3. Cierto, el probrema lo solucioné con:

    ./configure --enable-win64 --prefix=$HOME/wine-1.3.20


    Gracias por tu tutorial!!

    ResponderEliminar
  4. Ufff... veo que este artículo ya tiene algo de tiempo. Aún así espero que me respondan.

    Bien, primeramente al usar el comando wget el archivo no se descarga en el directorio indicado, y tengo que moverlo manualmente. Para probar copié y pegué el comando tal y como lo escribiste y pasa lo mismo.
    Después se menciona que se cambie el directorio a $HOME/.wine1.3.20 (después de extraer el archivo .tar) dando a entender que al extraerse un directorio debería crearse en la carpeta hogar, sin embargo no pasó así en mi caso.

    Por último, a la hora de ponder el comando ./configure --enable-win64 --prefix=$HOME/wine-1.3.20 me aparece esto al final:

    configure: error: FreeType development files not found. Fonts will not be built.
    Use the --without-freetype option if you really want this.

    Y después de eso no pude continuar, ya que al escribir make depend me aparece esto:
    make: *** No hay ninguna regla para construir el objetivo «depend». Alto.


    ResponderEliminar
    Respuestas
    1. Despues de dos años.... actualizado ;) primero, no tenemos idea que distribución Linux tienes... freetype es una dependencia, por lo tanto si estas compilando esa versión de wine vieja, es probable que necesite una versión mas vieja de freetype, no tengo idea cuanto conocimiento tengas, pero te digo una versión vieja me refiero a que debes compilar la versión que necesita de freetype (mala idea si no cambias las rutas de instalación, ya que entraría en conflicto con la versión actual, ademas si cambias rutas debes decirle a wine que freetype se encuentra en otra ruta... exportando las rutas) o crear enlaces simbólicos (no siempre funciona).

      Entonces la solución tal y como te lo dice, agregamos"--without-freetype" en la parte del configure sin las comillas...

      Eliminar

Si comentas te pedimos por favor respeto y críticas constructivas referentes al título del articulo. Cualquier comentario para desviar el tema, spam o trolleo no será permitido. Gracias por comentar.