A veces nos es muy útil ejecutar en un ordenador con Linux alguna que otra aplicación de Windows a causa de no tener ninguna alternativa a dicha aplicación, 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 instalado en dicho ordenador y por varias circunstancias no podemos instalarlo (una de ellas 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 cualquiera en el ordenador donde estén en ese momento ponen:
nano pac
Pegan el texto de abajo:
#!/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
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 pondríamos:
./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 pondrían en /var/cache/apt/archives/
cp /tmp/pac/packages_of_libreoffice /media/yasiel
Una ves en casa, los copiaríamos a la máquina de la siguiente manera:
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.
— Yasiel Ordoñez Abreu 2013/05/27 13:04