¿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'
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
$HOMECambiamos 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 ;)
Una prenguntilla, ¿en el caso de ser un Ubuntu x64 que librerías abría que instalar?
ResponderEliminarLas mismas.
ResponderEliminarsudo apt-get install build-essential
sudo apt-get build-dep wine
Estos paquetes automaticamente detectan tu arquitectura.
Cierto, el probrema lo solucioné con:
ResponderEliminar./configure --enable-win64 --prefix=$HOME/wine-1.3.20
Gracias por tu tutorial!!
Ufff... veo que este artículo ya tiene algo de tiempo. Aún así espero que me respondan.
ResponderEliminarBien, 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.
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).
EliminarEntonces la solución tal y como te lo dice, agregamos"--without-freetype" en la parte del configure sin las comillas...