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