Ayer estuve probando a crear un paquete de instalación funcional. Como no suelo hacerlo mucho, tengo ciertos despistes.
Retome un viejo ejemplo donde tenía imágenes de animales y sonidos.
Haciendo caso a Julio cree un archivo tar.gz, aunque no hubiera tantos archivos.
El siguiente problema que me encontré fueron las rutas. Yo estaba erre, que erre con las rutas de la aplicación.
Cuando iba a buscar la aplicación tanto los sonidos como las imágenes luego no las encontraba.
Así que buscando encontré que había que copiar el archivo comprimido al directorio: .hidden
Según vas dando los pasos de creación del paquete llega una parte, que es añadir archivos y es en
el directorio ".hidden" donde va a buscar estos.
Le dije que el directorio destino era /tmp
Bien, este es el modulo que se encarga de hacer el trabajo de crear el directorio oculto en la home del usuario
y de descomprimir. ( Al principio no entendía la forma de trabajar del compresor Tar ).
' Rutas donde se encuentran las imágenes y los sonidos
Public ruta_temporal As String = "/tmp"
Public ruta_principal As String = User.Home &/ "." & Application.Name
Public ruta_imagenes As String = ruta_principal &/ "Imagenes/"
Public ruta_sonidos As String = ruta_principal &/ "Sonidos/"
Public Sub Inicializar_variables()
'Si no existe el directorio, creamos el directorio en la home del usuario
If Not Exist(ruta_principal) Then
Try Mkdir ruta_principal
'Extraemos los archivos con sus directorios en la ruta principal
Try Shell "cd " & ruta_temporal & " && tar -C " & ruta_principal & " -xvf ImagenesYSonidos.tar.gz"
Endif
Catch
Message.Error("Se ha producido un error " & Error.Text)
End
Public ruta_temporal As String = "/tmp"
Public ruta_principal As String = User.Home &/ "." & Application.Name
Public ruta_imagenes As String = ruta_principal &/ "Imagenes/"
Public ruta_sonidos As String = ruta_principal &/ "Sonidos/"
Public Sub Inicializar_variables()
'Si no existe el directorio, creamos el directorio en la home del usuario
If Not Exist(ruta_principal) Then
Try Mkdir ruta_principal
'Extraemos los archivos con sus directorios en la ruta principal
Try Shell "cd " & ruta_temporal & " && tar -C " & ruta_principal & " -xvf ImagenesYSonidos.tar.gz"
Endif
Catch
Message.Error("Se ha producido un error " & Error.Text)
End
Con eso, ya había logrado descomprimir el archivo en el lugar adecuado.
Ahora me surgió otro problema, las imágenes se mostraban en los botones, pero no reproducía sonido.
Decir que el paquete se creaba sin problemas aparentes.
Yo estaba usando el viejo componente de audio de gambas, ya obsoleto. Y pensé, pues puede ser ese el problema.
Lo gracioso era que la fuente original, funcionaba, pero el paquete de instalación no hacia lo mismo.
Cambie de componente de sonido al gb.sdl2.audio, apliqué la forma de cargar un sonido, reproducirlo y funcionó
a la primera los sonidos de los animales.
...
sonido = Sound.Load(animal.sonido)
sonido.Play()
...
sonido = Sound.Load(animal.sonido)
sonido.Play()
...
Se que el código que hice está verde y es simple, pero para ser la primera vez me ha costado un poco el tema de ubicar los archivos,
el uso del descompresor que no comprendía como descomprimir de un directorio a otro.
¿ Suele dar problema el crear paquetes de instalación con componentes obsoletos ?.
¿ Consejos ?.
El código era de Julio del 2014, ya no me acordaba ni como iba. Naturalmente desde aquella fecha, se puede mejorar cosas.
Saludos