Gambas - Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

 
Vista:
sin imagen de perfil
Val: 27
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por José Luis (16 intervenciones) el 30/09/2019 19:58:05
Buenas tardes,

Hasta ahora cuando había creado paquetes de instalación de los programas que había hecho, como eran sencillos no tenían archivos extra.

Ahora tengo un problema, desde mi programa abro varios archivos, mientras desarrollaba el código accedía a ellos buscandolos en Appliccation.Path & "/" & "nombrearchivo.externsion" y no había problemas. Cuando he seguido el asistente de creación de paquetes y he incluido estos archivos extra, me dice que donde quiero que los copie, el problema es que no se en que diretorio va a instalar mi proyecto, y por lo tanto el codigo no los encuentre, pensé que poniendo Application.Path funcionario, pero nada de eso, me ha creado un directorio en /Application.Path

Incluyo una captura de pantalla para aclarar lo que digo.
Captura-de-pantalla-2019-09-30-19-45-33

¿Alguien sabe que Directorio de destino debo asignar a estos archivos?

Gracia y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Juan Enrique
Val: 33
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por Juan Enrique (12 intervenciones) el 01/10/2019 12:30:02
Hola José Luis

Yo lo tengo puesto en mi página fainotimesma.es que la uso de chuleta. Lo que puse es:

- Los archivos que se añaden al paquete (bases de datos, copyrigth, authors...etc), tienen que estar alojados en la carpeta '.hidden' del proyecto.
- El destino para la base de datos que emplea el programa es '/usr/share/nombre_aplicación'.
- El destino para la documentación es '/usr/share/doc/nombre_aplicación'.
- Los demas archivos que se emplean en el programa, pueden ir a una carpeta, por ejemplo 'Datos' dentro de la carpeta de la aplicación.

Espero haber sido de ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por jose Luis (16 intervenciones) el 02/10/2019 14:09:06
Gracias Juan Enrique,

Se me plantea ahora otra duda. Si los archivos se copian en usr/share/nombre_aplicaciobn, Me obliga esto a modificar el código ya que no estarían en Application.Path & "/" & "archivo.extension"? O sigue siendo valido el código original?

Gracias y saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Enrique
Val: 33
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por Juan Enrique (12 intervenciones) el 02/10/2019 14:37:12
Si, deberías cambiar el código ya que lo instalaría en esa ruta, y la aplicación debería buscarlo allí.
Un abrazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por José Luis (16 intervenciones) el 03/10/2019 20:43:29
Bunea tardes Juan Enrique,

Lo he probado y no me da problemas si leo los archivos (los archivos de imagen que uso para los iconos y caratula, el manual en pdf, y leer el archivo "idioma,txt") pero si intento escribir un archivo de texto alojado en "/usr/share/nombre_aplicaciont " me dice acceso prohibido en Form1 y peta el programa.

En concreto lo que hago es guardar en un archivo de texto "idioma,txt "una palabra que me sirve para guardar el idioma en que se muestran los menús y etiquetas del programa.

¿Solo tengo permisos de lectura para esa carpeta?¿Hay algún modo de conseguir permisos de escritura tambien en esa carpeta? o debo guardar este archivo en concreto en otra ubicación
¿Debe iniciarse el programa en modo sudo? y si es así, como se hace si no es desde el terminal, me refiero que al hacer clic en el icono del programa, como se consigue que lo lance en modo súper usuario.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Enrique
Val: 33
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por Juan Enrique (12 intervenciones) el 03/10/2019 22:07:46
Para lo que pretendes, yo lo alojaría en User.Home, y así, si que dejará modificar sin necesidad de ejecutarlo como root.
Puedes ponerle un punto antes para que quede oculto (.idioma.txt).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 27
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por José Luis (16 intervenciones) el 04/10/2019 09:12:37
Gracias Juan Enrique,

Otra duda que tengo en el asistente de crear paquetes de instalación, si pongo que el destino de idioma.txt sea /Home/usuario/nombreaplicacion/ solo será valido para mi PC, ya que en otro PC con toda seguridad, el usuario no será el mismo que en el mio, y creará un directorio adicional dentro de Home, donde no se puede escribir el archivo.

Para hacer que se cree el directorio dentro de la carpeta personal del PC donde se instale el programa ¿Como se debería referenciar ese directorio? ¿Sería algo así como User.Home/nombreaplicacion/? o ¿como seria la sintaxis correcta?

Gracias por tu ayuda y paciencia, la verdad es que estoy aprendiendo mucho con este proyecto, hasta ahora había hecho programas mucho mas simples.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Enrique
Val: 33
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por Juan Enrique (12 intervenciones) el 04/10/2019 11:49:13
Si, tendrías que poner la ruta que dices User.Home/nombreaplicación.

Yo, si puedo ayudar ayudo. Para mi Gambas fué todo un descubrimiento y ya tengo hechos unos cientos de aplicaciones, desde un parchís hasta una TPV. Me gusta mucho hacer aplicaciones con Gambas, aunque ahora lo tengo un poco apartado, ya que también me ha gustado la programación web.

Para lo que necesites, cuenta conmigo.

Un abrazo

Kike
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por José Luis (16 intervenciones) el 05/10/2019 09:36:12
Buenos días Juan Enrique,

Sigo teniendo problemas con el asistente de creación de paquetes de instalación,

Para que se entienda mejor el problema ya lo particularizo a mi proyecto. Mi usuario es "pepe" y mi proyecto "PepeBloc".

Para alojar los archivos extra que son de solo lectura, no tengo problemas, el asistente crea bien el directorio en /usr/share/PepeBloc/
El problema lo tengo con los archivos en que necesito lectura y escritura

Dentro del código del programa si que me funciona bien Dim Path As String = User.Home & "/PepeBloc/idioma.txt" pero con el aistnete pasa lo siguiente:

1 Si le digo que el directorio de destino es Use.Home/PepeBloc/, me crea un directorio User.Home fuera de Home
2 Si le digo que cree el directorio en /home/user/PepeBloc/, me crea dentro de Home pero fuera de pepe un directorio user que no tiene permisos de escritura ya que no es mi carpeta personal
3 Mirando la documentación de Gambas vi que ~/ es equivalente a User.Home, así que en el asistente de paquetes puse como directorio de destino ~/PepeBloc/, en este caso me creó fuera de Home un direcorio llamado ~PepeBloc que tampoco tenia permisos de escriura
4 En vista de que nada funcionaba con una carpeta de usuario genérica, ya intenté crear un directorio ya particularizado para mi PC, es decir /home/pepe/PepeBloc/, en este caso el asistente si que lo creó, pero el icono tenia un candado, mirando las propiedades del directorio solo tiene permisos de escritura para el usuario root cosa que hace que el archivo no se pueda escribir

Llegados a este punto, si no hay alternativa para que el asistente cree el directorio con premiosos de escritura dentro de la carpeta personal ¿Debo intentar que sea el código el que lo haga? Me refiero a intentar abrir el archivo dentro de un Try y si no existe (la primera vez que se ejecute el programa aun no existirá) dará error, y entonces dentro del Carch crear el directorio con un MkDir y dentro de el crear el archivo. Y ya las siguientes vece que se ejecute el programa ya existirá el archivo y se podrá sobrescribir si es necesario.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Enrique
Val: 33
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por Juan Enrique (12 intervenciones) el 05/10/2019 10:31:22
Hola

Si alojas los archivos que quieres que sean de lectura/escritura directamente en User.Home, no te va a dar problemas.
El único problema, es que al usuario le de por borrarlos. En ese caso, si los haces ocultos, será mas dificil que le de por eliminarlos.
Para ocultarlos, ya sabes, lo renombras poniéndole un punto "." como primer caracter.

Estos dias, tengo visitas familiares, pero mañana voy a simular lo que quieres y te digo algo mas concreto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por José Luis (16 intervenciones) el 05/10/2019 12:25:50
Gracias Juan Enrique,

Traté también de poner el archivo directamente en la carpeta personal, pero tuve el mismo problema, si bien el código del programa reconoce la sintaxis de User.Home, el asistente de crear paquetes no la reconoce. Se debe tener que referirte a User.Home de algún modo que desconozco.

Ya me dirás que descubres cuando tengas tiempo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Enrique
Val: 33
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por Juan Enrique (12 intervenciones) el 05/10/2019 12:39:07
Mañana te digo algo, pero creo que para que te copie bien el archivo, no tienes que hacer nada en el creador de paquetes, simplemente lo alojas en la carpeta .hidden del proyecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Enrique
Val: 33
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por Juan Enrique (12 intervenciones) el 06/10/2019 21:04:03
Hola José Luis

LLevo toda la tarde comiéndome el coco, y al final he llegado a la conclusión de que hay que crearlo en tiempo de ejecución en una carpeta del usuario.

La cosa sería algo así:

1
2
3
4
5
6
7
8
9
10
11
12
Public Sub Form_Open()
    Dim Archivo As File
    Dim Ruta As String
    Ruta=User.Home & "/idioma.txt"
    If Not Exist(Ruta) Then
        Archivo = Open User.Home & "/idioma.txt" For Write Create
        Print #Archivo, "El contenido que quieras en la primera línea"
        Print #Archivo, "El contenido que quieras en la segunda línea"
        Print #Archivo, "El contenido que quieras en la tercera línea"
        Close #Archivo
    Endif
End
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha mantenido su posición en Gambas (en relación al último mes)
Gráfica de Gambas

Donde deben ir los archivos extra al crear un paquete de instalación del proyecto

Publicado por José Luis (16 intervenciones) el 07/10/2019 10:01:36
Gracias Juan Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar