Empaquetando aplicaciones Velneo v7 mediante NSIS
La necesidad de este artículo radica en la poca información que se encuentra disponible en Internet referida a el empaquetado de soluciones desarrolladas con Velneo v7.
Antes de empezar es bueno aclarar que, normalmente, cualquier paquete de software dispone en su instalación de una licencia que tenemos que cumplir en todos sus artículos.
Como puntos fundamentales incluidos en la licencia de Velneo v7 para el caso en cuestión destacan:
…
2.4 Comercialización de las aplicaciones o programas informáticos generados con el producto software objeto de licencia. Para el supuesto de que esté utilizando un producto software licenciado cuya finalidad sea la creación de aplicaciones informáticas y bases de datos, usted podrá comercializar las mismas en los términos y condiciones que usted elija, aunque si las mismas incorporan elementos de otros LICENCIATARIOS deberá respetar los términos de licencia bajo los cuales tiene derecho a la utilización de esos elementos.
… lógico …
3.2 Separación de los componentes. Se autoriza el uso del Software como un producto único. Las partes que lo componen no se podrán separar ni hacer uso de ellas por separado.
…
En resumen:
Si empaquetamos componentes de terceros (packs de iconos, OpenApps, librerías dll, adjuntos, etc) tenemos que respetar la licencia de los mismos.
No podemos empaquetar los componentes por separado, por lo que tenemos que instalarlo desde los propios instalables de Velneo v7.
¿Cómo podemos instalar los componentes de Velneo v7 que nosotros deseemos si no podemos re-empaquetarlos?.
Sencillo, los componentes de la plataforma (vServer, vClient, vDevelop, etc.) tienen disponible un método de instalación desatendida y silenciosa (parámetro /S) por lo que podemos instalarlos de esta forma y distribuir todos los ficheros de los instalables en un único fichero mediante cualquier creador de instalaciones del mercado. Este método se conoce como redistribución de software por lo que creemos que es totalmente legal y aceptado por Velneo S.A.
¿NSIS es una buena elección?
NSIS es el elegido fundamentalmente por su aceptación en la comunidad OpenSource, su comunidad de usuarios y su infinidad de soluciones para casi todos los problemas que podáis encontraros. Las soluciones comerciales son igualmente válidas y suficientes.
¿Nos ponemos a ello?
Para empaquetar aplicaciones mediante NSIS es necesario, al menos, el entorno de compilación de paquetes (http://nsis.sourceforge.net). También es recomendable instalar el editor de scripts NSIS que más nos guste (http://hmne.sourceforge.net/) y seguramente nos venga bien disponer de un editor de texto avanzado (http://sourceforge.net/projects/notepad-plus/). Después de descargar e instalar todos estos paquetes de software libre empezamos el trabajo.
Creamos una carpeta donde almacenaremos todos los componentes de instalación de Velneo que queramos redistribuir. Además en esta misma carpeta creamos una subcarpeta “LICENCIAS” que contendrá los ficheros de texto con la aceptación de licencias de Velneo y de nuestro propio software. Por otro lado creamos otra subcarpeta más “SOLUCIONES” para las soluciones y datos a empaquetar (en nuestro caso solo soluciones, ya que los datos se crean en la primera ejecución (vServer/vClient).
Arrancamos el editor HM NIS Edit y ejecutamos el asistente para crear nuestro primer fichero de instalación.
No os comentaremos como continuar con el asistente pero si los detalles a implementar posteriormente. Pero antes de empezar con los detalles mejor leer el siguiente artículo http://jtagua.wordpress.com/2008/12/07/editor-de-instalaciones-nsis-y-hm-nis-edit/ para que os resulte familiar la utilización del asistente.
Continuamos… Cuando terminamos con el asistente empezamos con el trabajo duro, por un lado tenemos que asegurarnos de que se crean las carpetas y los accesos directos necesarios, por otro que los ficheros originales se copian en la ruta adecuada. Esta primera parte estará casi totalmente resuelta desde el asistente por lo que el trabajo será mínimo.
En nuestro caso:
Con esto tenemos los ficheros de los componentes de Velneo v7 empaquetados en un nuevo instalable.
¿Cómo hacemos la instalación desatendida?
Sencillo, instalamos con el parámetro /S mediante la instrucción ExecWait luego borramos el instalable de Velneo v7. Creemos que el parámetro /S es sensible a las mayúsculas.
¿Y la desinstalación?
Igualmente sencillo, desinstalamos con el parámetro /S.
¿Como empaquetamos nuestra solución dentro de NSIS?
En el artículo publicado hace unas semanas http://velneo.es/haz-el-instalable-de-una-aplicacion-e-instalala-en-solo-tres-pasos/ se produjo un cierto debate sobre si el nuevo componente de la versión 7.4 debiera tener o no funcionalidades de empaquetado de los componentes de la plataforma.
Nosotros creemos que no, pero creemos que falta algo:
Por un lado tenemos la magnífica herramienta vInstallBuilder que empaqueta soluciones y datos, por otro tenemos el vAdmin que lo instala, pero nos falta algo, nos falta una línea de comandos o parámetro del vAdmin que nos permita instalar desde la línea de MS-DOS el paquete generado mediante vInstallBuilder.
Vamos que desde el punto de vista del vInstallBuilder lo único que le falta en esencia es que se pueda publicar una solución desde la línea de comandos, dar de alta usuarios, grupos, permisos, pertenencias… vamos el vAdmin en comandos.
Por el momento no tenemos disponible ninguna solución que resuelva esta cuestión, pero si disponemos de métodos alternativos para resolver esta problemática.
Básicamente estos métodos se fundamentan en la estructura de carpetas que Velneo v7 utiliza para guardar la configuración del vServer. Típicamente, en sistemas operativos de Microsoft se almacenan en la carpeta del perfil del sistema (en 32bits c:\windows\system32\config\systemprofile\Velneo). Las subcarpetas llamadas cajas y server almacenan la configuración del servidor y las propias soluciones. Los ficheros de configuración son los *.vsi
Por lo tanto para replicar una cierta configuración de nuestro vServer solo tenemos que copiar todos los ficheros contenidos en la carpeta c:\windows\system32\config\systemprofile\Velneo de nuestro servidor local y empaquetarlos para luego distribuirlos en nuestro vServer destino.
En nuestro caso:
…
Es importante apreciar como también se distribuyen los ficheros *.vsi dentro de nuestro paquete de instalación, por lo que será replicada la configuración de usuarios, instancias, carpetas de datos y sitios.
Que gran articulo y aportación.
Espero impaciente la «versión» de Velneo.
Gracias, vSaludos
Magnífico artículo. Ante todo gracias por tu clara y completa explicación. También esperamos ansiosos la llegada de los comandos para las operaciones de vAdmin, no solo para las instalaciones sino para los mantenimientos y las actualizaciones.
Un saludo
Buen articulo
muy currado
gracias
José Luis
Hola velneadores, tengo una consulta y es si esta guía la tienen en forma mas detallada ya que no conozco mucho el nsis.
Saludos,
Santiago
@Santiago NSIS es un producto ampliamente utilizado.
Hay cientos de referencias en Internet de como usarlo. Te pongo unos solos enlaces de ejemplo.
http://www.youtube.com/results?search_query=NSIS&oq=NSIS&gs_l=youtube.3..0l7.974.3221.0.3519.8.6.2.0.0.0.84.442.6.6.0…0.0…1ac.1.11.youtube.4aMooTDSfa4
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=nsis
http://unpocodejava.wordpress.com/2011/06/26/nsis-un-instalador-de-aplicaciones-muy-muy-configurable/
http://www.purosoftware.com/programacion-instaladores/02-nullsoft-install.html
http://www.portalhacker.net/index.php?topic=76300.0
Espero que te ayuden.
Muchas gracias Jorge por la información, me ha servido de mucho.
Saludos,
Santiago
Hola Jorge,
Hay una cosa que no veo en el artículo y no sé si te habrás topado con ella. El servicio queda iniciado en modo Manual, con lo cual no queda del todo en modo desasistido. ¿Sabes o alguien sabe alguna forma de instalar el vServer pero con el servicio configurado en Automático?
Gracias por adelantado!!!!
En NSIS puedes modificar el registro mediante la extensión REGISTRY.
Descarga, copia en tu directorio NSIS y modifica en tu fichero las claves de registro necesarias. Ejemplo:
; REGISTRY
!include «Registry.nsh»
; Set the start type to automatic of a service
SimpleSC::SetServiceStartType «Vatp Service 7.14.3.12333» «2»
; Pop $0 ; returns an errorcode (0) otherwise success (0)
; Arrancamos el servicio
ExecWait ‘»$PROGRAMFILES\Velneo\V7\vServer.exe» -s’ $2