Páginas (2): 1 2   
tincho   13-08-2021, 15:30
#1
En este pequeño resumen intentare plasmar las etapas por las que hay que pasar para distribuir un programa desarrollado y empaquetado con Gambas-IDE

Escenario
  • Sistema de desarrollo: Debian 11 con Gambas-IDE 3.16.9 instalado desde las fuentes.
  • Programa Databook desarrollado y empaquetado con Gambas-IDE 3.16.9 y marcando versión mínima 3.12
  • Sistema destino Debian 11 sin Gambas-IDE sin ningún componente gambas, nada de nada.
Receta 1
  1. Instalar los componentes gambas de los que depende el programa Databook con sudo apt-get install gambas3-runtime gambas3-gb-compress gambas3-gb-desktop gambas3-gb-form gambas3-gb-gtk3 gambas3-gb-image gambas3-gb-util-web gambas3-gb-xml [1]
  2. Instalación del paquete sudo dpkg -i databook_0.1.7-1_all.deb [2]

Receta 2
  1. Instalar con GDEB que si verifica las dependencias: sudo gdebi databook_0.1.7-1_all.deb [3]

Notas
  1. gambas3-runtime es el paquete que siempre se debe instalar para un mínimo funcionamiento del programa mas simple. Luego en el archivo .project del proyecto están listados los componentes que este utiliza como puede verse en el ejemplo de Databook.
  2. dpkg es el programa usado para instalar el paquete de forma "artesanal" como lo llamo Shordi y le tomo prestado el termino, pero bien valdría algún otro programa a tal efecto como gdebi.
  3. En debian 11 no venia instalado por defecto gdebi así que para usar la receta 2 hay que instalarlo antes.

Conclusión
  • Siguiendo esta "receta" el programa fue instalado sin ningún tipo de error y funciona correctamente.
Atención
  • Si desinstalan Gambas3 los programas que dependan de algún componente de gambas es decir todos los desarrollados con el IDE serán desinstalados también hayan sido instalados por ejemplo sudo apt-get remove --purge gambas3* dará como resultado la desinstalación de databook* gambas3-gb-compress* gambas3-gb-desktop* gambas3-gb-desktop-x11* gambas3-gb-form* gambas3-gb-gtk3* gambas3-gb-image* gambas3-gb-util-web* gambas3-gb-xml* gambas3-runtime*
  • En la versión 3.16 de gambas se introdujeron una serie de modificaciones en los componentes y los controles que en la practica hacen que, si los programas desarrollados usan estos nuevos componentes o controles, no sea posible distribuir los paquetes en todos los sistemas. Lo mas seguro es desarrollar con el IDE que viene por defecto en el sistema destino donde se se instalara el programa o, en el caso de Ubuntu y sus derivados, con el PPA de Gambas-Team
Retrocompatibilidad
  • En el caso de desarrollas con un IDE anterior a 3.15 o anterior y luego intentar abrir un proyecto 3.16 o posterior seguramente aparezcan problemas de compatibilidad con controles que no existen en versiones anteriores, como es el caso de VSplitter en cuyo caso basta por editar el form con un editor de texto cambiando el tipo de control. Para mas detalle ver: https://gambas-es.org/showthread.php?tid=373
Mas adelante me gustaría hacer una especie de manual o tutorial para cada distribución especifica, tal vez en el wiki de gambas. Si a alguien le parece una buena idea y tiene algún resumen o "receta" para la distribución que usa no dude en comentarlo.

Saludos.
Última modificación: 14-08-2021, 16:33 por tincho.

1 Saludo.
jguardon   14-08-2021, 11:31
#2
Yo para Debian o derivados hubiera hecho doble click en el paquete del programa y ya el sistema se encarga de resolver dependencias e instalarlas. No entiendo tanta complicación cuando el paquete deb que genera el IDE ya tiene las referencias a todas sus dependencias. Normalmente al abrir un fichero deb para ejecutarlo se abriría la utilidad gdebi que resuelve, instala dependencias y finalmente instala nuestra aplicación todo con una sencilla insterfaz de usuario, porque dudo que esta utilidad no esté presente en todos los debian y derivados (u otra similar).

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
tincho   14-08-2021, 15:59
#3
(14-08-2021, 11:31)jguardon escribió: Normalmente al abrir un fichero deb para ejecutarlo se abriría la utilidad gdebi que resuelve, instala dependencias y finalmente instala nuestra aplicación todo con una sencilla insterfaz de usuario, porque dudo que esta utilidad no esté presente en todos los debian y derivados (u otra similar).

Si gdebi es lo mas sencillo siempre que dispongas de entorno gráfico, pero por ejemplo en el sistema debian 11 que uso no viene instalada por defecto y si fuera el caso de una aplicación que deseamos instalar en un servidor en el que solo se dispone de terminal de texto.
Es posible usar gdebi desde la terminal sin entorno gráfico con sudo gdebi databook_0.1.7-1_all.deb
Código:
$ sudo gdebi databook_0.1.7-1_all.deb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Reading state information... Done

E-book collection manager
 E-book collection manager
 This program is written in Gambas.
¿Quiere instalar el paquete de software? [s/N]:s
/usr/bin/gdebi:113: FutureWarning: Possible nested set at position 1
  c = findall("[[(](\S+)/\S+[])]", msg)[0].lower()
(Leyendo la base de datos ... 308701 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar databook_0.1.7-1_all.deb ...
Desempaquetando databook (0.1.7-1) sobre (0.1.7-1) ...
Configurando databook (0.1.7-1) ...
Procesando disparadores para gnome-menus (3.36.0-1) ...
Procesando disparadores para desktop-file-utils (0.26-1) ...
Procesando disparadores para mailcap (3.69) ...
Procesando disparadores para hicolor-icon-theme (0.17-2) ...

Decidí crear este resumen para dar una respuesta general y para listar lo que viene dentro de los paquetes creados de proyectos gambas y que no.

Saludos.
Última modificación: 14-08-2021, 16:30 por tincho.

1 Saludo.
Shell   08-09-2021, 12:29
#4
Hola Tincho!.
 
(13-08-2021, 15:30)tincho escribió: Programa Databook desarrollado y empaquetado con Gambas-IDE 3.16.9 y marcando versión mínima 3.12

¿ Cómo se puede saber desde que versión funcionaría el paquete de instalación ?. ¿ Vas instalando el paquete en versiones de gambas3 hasta que falla ?.  Uh!.
 
(13-08-2021, 15:30)tincho escribió: Sistema destino Debian 11 sin Gambas-IDE sin ningún componente gambas, nada de nada.

¿ Sin formularios ?. No es lo más habitual.
 
(13-08-2021, 15:30)tincho escribió: Receta 1

Pero tu le puedes decir a Gambas que paquetes quieres instalar si no me equivoco. Que dependan y los necesite para funcionar el programa.
 
(14-08-2021, 11:31)jguardon escribió: Yo para Debian o derivados hubiera hecho doble click en el paquete del programa y ya el sistema se encarga de resolver dependencias e instalarlas

Puede darse el caso de que el usuario no tenga instalado Gambas3.  Mas trabajo para el desarrollador, versión distinta a la que trae por defecto
la distro. El usuario puede pensar, el programa me interesa pero no tiene ni idea de que debería hacer para instalarlo.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
alessandri   08-09-2021, 13:58
#5
Hola amigos.
Aprovecho el tema para preguntar,
¿hay alguna forma de que mysql-server u otro paquete quede embebido en un programa hecho en Gambas3?
A los usuarios les encanta descargar un paquete y que todo quede instalado. Smile
Última modificación: 08-09-2021, 13:58 por alessandri.
tincho   08-09-2021, 14:48
#6
(08-09-2021, 13:58)alessandri escribió: ¿hay alguna forma de que mysql-server u otro paquete quede embebido en un programa echo en Gamba3?
A los usuarios les encanta descargar un paquete y que todo quede instalado. Smile

No se como se haría algo así pero si el "paquete" lo va a descargar, instalar y utilizar un solo usuario por que usar mysql, usa sqlite y listo.
Saludos.

1 Saludo.
jguardon   08-09-2021, 14:57
#7
(08-09-2021, 13:58)alessandri escribió: ¿hay alguna forma de que mysql-server u otro paquete quede embebido en un programa hecho en Gambas3?

Hola, Alessandri

Ya se habló de esto -creo- en otro hilo y depende de varios factores. Paquetes como mysql o cualquier otro que sea común en los repositorios de la distribución pueden indicarse como dependencias externas al programa desde el asistente de creación de paquetes.

Incluir otro tipo de ejecutables dentro de un paquete no siempre es buena idea y desde luego, nunca serían admitidos en los repositorios oficiales. Linux es modular y por eso unos paquetes dependen de otros. El sistema de paquetes se encarga de determinar esas dependencias y proceder a instalarlas o no, según sea necesario, pero no deberíamos (ni tampoco debería hacer falta) incluir ejecutables en nuestros programas sin que el usuario sepa qué está instalando con su programa.

Resumiendo, si el paquete existe en los repositorios oficiales, incluir la dependencia externa en el proceso de creación del paquete.

Si es una librería gambas o C, suministrar el paquete apropiado para su instalación antes o después de nuestro programa principal.

Y si queremos hacerlo bien, lo ideal es montar un repositorio y que todo se instale desde el mismo, mediante dependencias explícitas en nuestro paquete principal.

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
Shordi   08-09-2021, 17:24
#8
Cita:Y si queremos hacerlo bien, lo ideal es montar un repositorio y que todo se instale desde el mismo, mediante dependencias explícitas en nuestro paquete principal.

Ahí le has dado. Gran parte de mis logros a la hora de implantar Linux y mis desarrollos en mi empresa fue la disposición de un Repositorio propio. He de reconocer al forero sebikull, miembro del antiguo foro, la guía que me llevó a conseguirlo. Hace tiempo (años ya) que propuse crear un repositorio para subir los desarrollos de los miembros del foro... pero la oferta no era correcta (ahora lo veo). Sin embargo, dado que últimamente hablamos del desarrollo de un software empresarial. Sería interesante disponer de uno por algún lado. Sin embargo no sé si yo sería capaz de ello ahora que llevo dos años de oxide jubileta. En realidad sólo se requería una carpeta en un servidor web donde crearlo pero la última vez que miré las distros (Linux Mint y Ubuntu) avisaban de que todos los repos debían disponer de un certificado y demás y que en breve sería obligatorio y todo eso. "Ese tema os lo dejo de herencia" le dije a los padawanes... y no sé en qué ha acabado el asunto.

Otra posiblidad es un PPA, pero creo que exigen muchas cositas para admitirte la creación de uno...

En fin...

Saludos

No podemos regresar
tincho   08-09-2021, 18:42
#9
(08-09-2021, 17:24)Shordi escribió: Otra posiblidad es un PPA, pero creo que exigen muchas cositas para admitirte la creación de uno...

https://help.launchpad.net/Packaging/PPA

Saludos.

1 Saludo.
Shordi   08-09-2021, 19:41
#10
A ver si alguien se anima a hacer el ppa:gambas-es-team/gambas3 ... Big Grin Big Grin Big Grin

No parece difícil y lo más engorroso (por lo menos) que era la creación y asociación de una clave publica y demás parece que lo hace solito. Lo mismo con rellenar un par de formularios se consigue. Yo me temo que entre soprano, gbAmp, coca, intriga y los nietos estoy ya sobrepasado.


Saludos.

Creo que tengo por algún lado los apuntes que hice para crear y mantener el repositorio del curro. Si a alguien le interesa, los busco y los pongo por aquí.

Saludos
Última modificación: 08-09-2021, 19:46 por Shordi.

No podemos regresar
Páginas (2): 1 2   
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.