Construirse un wine portable

Programacion en Bash

Moderadores: frank, dxfiles

Avatar de Usuario
GhOsT14105
Mensajes: 87
Registrado: Vie, 08 Abr 2011, 11:28
Contactar:

Construirse un wine portable

Mensaje por GhOsT14105 » Vie, 24 May 2013, 17:48

A veces nos es muy útil ejecutar en un ordenador con nuestro amado Linux alguna que otra aplicación de wintendo, perdón de windows, eso como muchos saben se puede hacer con wine una aplicación para correr programas con extensión .exe, pero suele suceder que este programa no esta en dicho ordenador y por varias circunstancias no podemos instalarlo (una simple seria que no tenemos acceso a root, para instalarlo), bueno pues con el script de abajo me propongo crear un wine portable para solucionar el problema.

Desde una shell ponen:

nano pac

Pegan el texto de abajo, presionan Ctrl + S para salir y afirman que si desean guardar el documento. Después le dan permisos de ejecución con:

chmod a+x pac

Una ves hecho procedemos a crear el wine portable con este comando:

./pac wine

Se nos creará una carpeta llamada pac_dir con el wine portable dentro, accedemos a ella

cd ./pac_dir/wine_portable

Y para ejecutar una aplicación pondriamos:

./run_wine ruta_del_programa.exe

Creándose el primero el perfil del wine dentro del perfil del usuario en que estemos logueado y luego ejecutándose dicha aplicación.

Esta aplicación también sirve para llevarnos a nuestro hogar todos los paquetes y dependencias que deseemos, por ejemplo (libreoffice). Realizando su instalación más tarde.

Bastaría con poner:

./pac libreoffice

Borrar el directorio pac_dir que supuestamente no nos interesa y copiar a un dispositivo usb todos los paquetes del libreoffice alojados en el directorio /tmp/pac/packages_of_libreoffice, estos paquetes luego se pondrian en /var/cache/apt/archives/

cp /tmp/pac/packages_of_libreoffice /media/yasiel

Una ves en casa cp /media/yasiel/packages_of_libreoffice/* /var/cache/apt/archives

Nota: Vale aclarar que el directorio /tmp se limpia cuando apagamos o reiniciamos el ordenador, por lo que los paquetes que se han creado allí, ya no estarían. pero de seguro muchos de ustedes lo sabrán. Ademas para que el programa pinche, debe de estar configurado correctamente el source.list en el ordenador donde se valla a ejecutar.

Código: Seleccionar todo

#!/bin/sh
#######################################################################################################
# AUTOR:		(c) Yasiel Ordońez Abreu. <inf1003@ucf.edu.cu>
# WRITTEN BY:	May 22,2013
# VERSIÓN:		1.0
# LICENCIA:		GPL (http://www.gnu.org/licenses/gpl.html)
# NOMBRE:		Portable Application Constructor (pac)
# INSTALACIÓN:	Copiar en el directorio /usr/bin (cp pac /usr/bin)
# DESCRIPCIÓN:	Contruye aplicaciones portables desde los repositorios, para ejecutarlas en otros ordenadores.
clear ; mkdir pac_dir ; cd pac_dir > /dev/null
mkdir $@_portable ; cd $@_portable > /dev/null
packages=$(apt-cache depends $@ | grep -v -e onflict -e Reemplaza -e Replace -e PreDep -e \< -e swx11 | sed -e s/Depend.:// -e s/Recommends:// -e s/Recomienda:// -e s/Suggests://  -e s/Sugiere:// -e s/[\ \|]//g)
apt-get download $packages
echo "Descomprimiendo paquetes....."
for i in * ; do
 	if [ -n "$(echo $i | grep .deb$)" ] ; then
  		ar xo $i
 		if [ -f data.tar.gz ] ; then
 			tar -xzf data.tar.gz
 		elif [ -f data.tar.bz2 ] ; then
 			tar -xjf data.tar.bz2
 		elif [ -f data.tar.lzma ] ; then
 			tar --lzma -xf data.tar.lzma
 		else
 		    echo "No pude extraer los binarios desde $i" >&2
		fi
		rm data*
		rm debian*
		rm control*
	fi
done
echo "#!/bin/bash\n" >> run_$@
echo "/lib/ld-linux.so.2 --library-path \"lib:lib64:usr/lib\" usr/bin/$@ \$1\n" >> run_$@
chmod +x run_$@
mkdir --parents /tmp/pac/packages_of_$@ > /dev/null
mv --force *.deb /tmp/pac/packages_of_$@ > /dev/null
Cualquier duda hacérmela saber y siéntanse en la libertad de modificar y mejorar este script solo publiquen aquí los cambios que le realicen.
Nacimos esclavos del software privativo y moriremos libres de el.

Escucha a tu disco duro y ve que tiene que decirte:
sudo cat /dev/sda | aplay -fdat

PD: Sirve para otros dispositivos, como USB, CD, etc.

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Construirse un wine portable

Mensaje por hugo » Sab, 25 May 2013, 11:47

Mejor pasas esto a la Wiki, tu ya tienes permisos de edición.
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Avatar de Usuario
GhOsT14105
Mensajes: 87
Registrado: Vie, 08 Abr 2011, 11:28
Contactar:

Re: Construirse un wine portable

Mensaje por GhOsT14105 » Lun, 27 May 2013, 13:18

Saludos
Ya lo acabo de poner en la wiki, más adelante iré poniendo más.
Nacimos esclavos del software privativo y moriremos libres de el.

Escucha a tu disco duro y ve que tiene que decirte:
sudo cat /dev/sda | aplay -fdat

PD: Sirve para otros dispositivos, como USB, CD, etc.

jval
Mensajes: 56
Registrado: Mié, 25 Ago 2010, 09:37

Re: Construirse un wine portable

Mensaje por jval » Vie, 14 Mar 2014, 10:30

yo a la verdad soy un poco bruto y no se si esta bien pero a mi me ha dado resultado es otra via simplemente utilizando slitaz e instalando a wine en un directorio con tazpkg luego en la distro que quieras ejecutas winefile y ya tienes un navegador de ficheros que te permitira ejecutar aplicaciones de win2 no se si esta via sea buena o mala pero me da resultados gracias

Avatar de Usuario
GhOsT14105
Mensajes: 87
Registrado: Vie, 08 Abr 2011, 11:28
Contactar:

Re: Construirse un wine portable

Mensaje por GhOsT14105 » Dom, 16 Mar 2014, 10:28

Si eso que comentas pincha, pero no tan de maravillas, ya que al ejecutarlo asi de esa manera son muchas las librerias que se quedan sueltas (no se ejecuta a full el wine por lo que muchas app no te ban a funcionar), ademas el wine del slitaz es 1.1.29 y actualmente existen en la red mucho mas actualizados

saludos..
Nacimos esclavos del software privativo y moriremos libres de el.

Escucha a tu disco duro y ve que tiene que decirte:
sudo cat /dev/sda | aplay -fdat

PD: Sirve para otros dispositivos, como USB, CD, etc.

stanley
Mensajes: 13
Registrado: Jue, 28 Nov 2013, 11:00

Re: Construirse un wine portable

Mensaje por stanley » Lun, 17 Mar 2014, 15:57

Tal vez este otro que yo uso te pueda servir, la diferencia de cada uno es que si existe una librería, instalada en una pc y en otra no no te funcionara, para wine no hay problemas de dependencias.

Échale un ojo a este script:

Código: Seleccionar todo

#!/bin/sh
mkdir "$HOME/portable"
dir="$HOME/portable"
dirusr="$dir/usr"

cd $dir

echo "Descargar Paquetes"
aptitude download `echo si | aptitude -R -s -y install $@ | grep -A 10 -i "Se instalarán" | grep -B 10 -i "paquetes actualizados" | sed 's|{a}||g' | grep -v paquetes | tr '\n' " "`

echo "Descompactar paquetes"
find $diruser -name "*.deb" | while read file; do dpkg-deb --extract "$file" "`dirname "$file"`"; done && rm ./*.deb

echo "Cambiar direccion de USR"
cd /home/camilo/Crear-port/games/usr && ln -s ../etc ./et & find $dirusr -type f -exec sed -i -e "s|/usr|././|g" {} + && find $dirusr -type f -exec sed -i -e "s|/etc|./et|g" {} + && cp "`find "$dirusr" -name "*.desktop" | sed -n 1p`" "$dir"

echo "Proceso Culminado"

Nota: dentro de la carpeta $HOME/portable deberan colocar otro script con el siguiente codigo

Código: Seleccionar todo

#!/bin/bash
cd "$(dirname "${0}")/usr"
dir="$(dirname "${0}")/usr"
PYTHONPATH=$dir/share/pyshared:$dir/share/python-support:"$PYTHONPATH" LD_LIBRARY_PATH="$dir/lib:$dir/lib/i386-linux-gnu:${LD_LIBRARY_PATH}" PATH="$dir/bin/:$dir/sbin/:$dir/games/:${PATH}" exec "$@"
pueden remplazar exec "$@" por
exec wine start /unix "$@"

Este me ha funcionado para miles de aplicaciones que no quiero instalar en mi pc, ya sean juegos programas para editar imágenes como el gimp, entre otros.


Este script es solo valido para sistemas basados en debian, y que tengan el paquete aptitude instalado, ya que lo que hace es listar el software y las dependencias para luego ser descargadas y descomprimidas.

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Construirse un wine portable

Mensaje por hugo » Mar, 18 Mar 2014, 07:29

stanley escribió:Este me ha funcionado para miles de aplicaciones que no quiero instalar en mi pc, ya sean juegos programas para editar imágenes como el gimp, entre otros.
¿Para qué correr GIMP con Wine, si esa aplicación existe nativa para Linux?
Obviamente que no deseas instalarla, pero probablemente existe una forma de compilar Wine de manera estática y tendrías un ejecutable relativamente portátil, o alguna otra variante debe existir que permita correrlo sin instalarlo y tampoco emularlo.
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

stanley
Mensajes: 13
Registrado: Jue, 28 Nov 2013, 11:00

Re: Construirse un wine portable

Mensaje por stanley » Mar, 18 Mar 2014, 07:55

@hugo el script que plantee es para portabilizar casi cualquier software de linux, incluyendo el wine y el propio gimp del sistema, este método es util si no quieres instalar softwares en la maquina que lo has de usar, wine solo lo uso para algunos ejecutables.

Revisa mejor el script y te darás cuenta.
Disculpen las molestias ocasionadas.

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Construirse un wine portable

Mensaje por hugo » Mar, 18 Mar 2014, 10:47

¿Por qué pides disculpas? No me parece que hayas molestado a nadie.

En todo caso, discúlpame tu por la holgazanería, pues solo le eché una ojeada al script por encimita y no me resultó evidente esto que dices, luego lo reviso con más calma, pues me parece interesante tener esa alternativa.
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Avatar de Usuario
GhOsT14105
Mensajes: 87
Registrado: Vie, 08 Abr 2011, 11:28
Contactar:

Re: Construirse un wine portable

Mensaje por GhOsT14105 » Sab, 29 Mar 2014, 15:29

Saludos, les comento que hace rato que no uso wine y he adoptado totalmente a puppy linux, por lo que se me hace imposible probar esta via de portabilizar una app linux, pero en cuanto tenga un time la probare a ver que tal!!!!
Nacimos esclavos del software privativo y moriremos libres de el.

Escucha a tu disco duro y ve que tiene que decirte:
sudo cat /dev/sda | aplay -fdat

PD: Sirve para otros dispositivos, como USB, CD, etc.

Responder