Portables Gambas
El ecosistema Linux es un tanto caótico, existen cientos de
distribuciones, cada distribución varias versiones (Debian 7, Debian
8...etc), y para colmo tenemos versiones de 32 o 64 bits.
Si uno quiere crear un programa que funcione en varias
distribuciones, deberá compilar este programa para las distintas
distribuciones, esto puede ser un tanto laborioso y complicado.
Para salvar este problema podemos hacer uso de las aplicaciones
portables, que en teoría funcionarán en todas las distribuciones.
En este artículo explico como crear aplicaciones portables de
programas realizados con Gambas.
Debemos entender que Gambas ha crecido bastante, la amplitud de
librerías usadas es grande, y con cada nueva versión se aumenta.
Explico esto para entender el motivo de por qué utilizo una versión
de Gambas que se encuentra en Debian 7. El mismo programa
Clock que viene como ejemplo en Gambas, al transformarlo a portable
en Debian 9 nos ocupa 50 Megas, si lo creamos utilizando Debian 7
nos ocupa 25 Megas , la mitad.
En teoría, después de creado, se puede ejecutar en distintas
distribuciones, e incluso en 64 bits sin retocar nada.
Para terminar utilizo makeself, crea un ejecutable compacto.
Se auto descomprime en el directorio tmp y se ejecuta. Este
último paso no es obligatorio, pero queda muy presentable.
Como ejemplo voy ha utilizar el programa Clock que viene como
ejemplo en Gambas de Debian 7.
El entorno de ejecución de Debian 7 se realiza sobre una máquina
virtual con VirtualBox.
Una vez cargado y ver que funciona bien, creamos el fichero
ejecutable llamado Clock.gambas.
Para comprender el entorno, he creado un usuario llamado portable,
y dentro de este usuario el directorio bin, es donde guardo
el ejecutable Clock.gambas.
cde
El verdadero protagonista de este artículo es cde_2011-08-15_32bit
,
http://www.pgbovine.net/cde.html
este pequeño programa de 900 Kbytes crea directorio donde recrea
todo el entorno de librerías y demás programas que utiliza el
programa que queremos que sea portable.
Colocamos el programa cde_2011-08-15_32bit en el
directorio /home/portable/bin junto con Clock.gambas.
Entramos en una consola y tecleamos:
cd /home/portable/bin
./cde_2011-08-15_32bit gbr3 Clock.gambas
Después de ejecutar el programa y cerrarlo, veremos que nos ha
creado un directorio llamado cde-package , lo cambiamos de nombre
con la orden: mv cde-package
clock
En el directorio clock creamos un fichero llamado programa
con lo siguiente:
#!/bin/sh
cd cde-root/home/portable/bin
./gbr3.cde Clock.gambas
Damos permiso de ejecución con chmod
ugo+x programa
Ahora podemos probar el programa ejecutando el fichero programa.
En alguna ocasiones gambas busca iconos y directorios en el sistema
, no hacen falta, por lo que conviene mirar el directorio que genera
cde, para eliminar algún que otro archivo que no hace falta y
tienen un gran tamaño. Para este caso no ha hecho falta, pero para
otro que hice BarCode, eliminé 25 Megas.
Para trasladarlo a otro ordenador lo comprimimos con la orden:
tar -czvf clock.tar.gz clock
En otro ordenador lo descomprimimos con: tar -xzvf clock.tar.gz
Y lo podemos ejecutar con el ejecutable programa.
Entorno 32 bits
Entorno 64 bits
makeself
Esta opción de tener el ejecutable portable en un directorio esta
bien, pero algunos pensarán que se vería mejor si fuese un solo
fichero que se ejecutara directamente.
Para esta opción tenemos el programa makeself , está en la
mayoría de las distribuciones, y sirve para hacer un fichero
ejecutable auto extraíble .
Con la orden:
makeself clock clock.run "Clock"
./programa
creamos un fichero comprimido ejecutable con en nombre clock.run.
El único inconveniente es que crea un terminal junto con el
programa.
También he visto que si se intenta ejecutar el programa en un
entorno de 64 bits, debes hacerlo desde consola, no he querido
averiguar el motivo.
Como podéis ver, puede resultar un poco laborioso al principio, pero
al ver funcionar el programa en diferentes distribuciones sin
problemas de librerías, nos da muchas alegrías.
También he realizado otros dos programas portables. Uno es de
Gambas, BarCode, y el otro xcalc, un clásico del entorno Xwindows.
PROGRAMAS
Espero que les haya gustado el artículo.
Saludos.
Juan Galaz