Preparar el Instalador para Windows

Visionaris

Preparar el Instalador para Windows

  • Compilación para protección del código fuente

    • Genera un ejecutable que contiene todo el código de la UI (backend y frontend)

    • Software: PKG (GitHub - vercel/pkg: Package your Node.js project into an executable )

    • Las librería que están en código binario no las coloca dentro del paquete

    • Genera un ejecutable para la plataforma de destino (windows - linux - mac)

    • La generación del ejecutable debe realizarse en la plataforma de destino. Por ejemplo el ejecutable para Windows debe compilarse en un sistema Windows. Esto es debido a que al momento de descargar las dependencias, estas se descargan según la plataforma.

    • Comando de compilación:
      pkg ./dist/index.js --targets node12-win-x64 --config ./dist/package.json --options max_old_space_size=2048 --output vis7

    • Es necesario copiar el package.json a la carpeta dist/ antes de ejecutar el comando

    • La carpeta de destino debe quedar asi:

      • archivo: vis7.exe

      • archivo: zmq.node (copiado de la carpeta node_modules)

      • archivo: bcrypt_lob.node (copiado de la carpeta node_modules)

      • carpeta: puppeteer (esta carpeta tiene la siguiente estructura proveniente de node_modules => puppeteer\win64-809590\chrome-win)

  • Carga del ejecutable como servicio del sistema operativo

    • En la carpeta visionarisui colocar los siguientes elementos:

      • Carpeta: bin/ (contiene los archivos de la compilación de código fuente “paso anterior”)

      • Carpeta node_modules (contiene los archivos de la librería node-windows)

      • Archivo: installService.js Es un script de node.js que carga la aplicación UI compilada como servicio de windows. Se ejecuta así: .\node_modules\node\node installService.js
        Este archivo contiene las variables de entorno que necesita la aplicación

      • Archivo: removeService.js Es un script de node.js que remueve el servicio de windows. Se ejecuta asi: .\node_modules\node\node removeService.js

    • Cuando se instala el servicio, se genera la carpeta daemon que contiene los archivos que configuran el servicio de Windows

    • Cuando se remueve el servicio, la carpeta daemon se elimina automáticamente

    • Si es necesario modificar alguna de las variables de entorno, debe hacerse en el archivo installService.js y luego remover y volver a instalar el servicio.

  • Nuevo cargador del ejecutable como servicio

    • Se utiliza nssm.exe

    • Nuevos script para instalar y remover el servicio “installService2.bat” y “removeService2.bat”

  • Instalador para Windows

    • La generación del instalador se realiza mediante el software NSIS (en este caso utilizamos la versión 3.06.1) https://nsis.sourceforge.io/Main_Page

    • Complemento para modificación de los archivos de configuración de la aplicación https://nsis.sourceforge.io/TextReplace_plugin#Description

    • En una carpeta se deben colocar los siguientes componentes:

      • dataspa (carpeta con la aplicación)

      • engine (carpeta con la aplicación)

      • hadoop (carpeta con la aplicación Hadoop)

      • mongodb (carpeta con los archivos de MongoDB, en teste caso utilizamos la versión 4.4.2 que era la actual para windows x64)

      • visionarisui (carpeta con la aplicación, la que se compiló en los pasos anteriores)

      • jre-8u271-windows-x64 (instalador de JRE, esto posiblemente se cambie)

      • licencia.txt (archivo con el texto de la licencia)

      • visinst.ico (archivo con el icono de la aplicación)

      • installer.nsi (archivo con el script que configura el instalador)

      • dotnetfx35.exe (instalador de .net FrameWork 3.5) Necesario para cargar como servicios los motores

      • vcrerdist_x64.exe (instalador de C++ 2010 redistribuible) Necesario para que corre Hadoop

    • La compilación del instalador se realiza abriendo la aplicación NSIS, opción “Compile NSI script” y abriendo el archivo installer.nsi

    • El contenido del archivo installer.nsi es el siguiente:

  • La instalación de la aplicación realiza los siguientes pasos:

    • Pide confirmar la licencia

    • Solicita la ruta de instalación

    • Copia las carpetas / archivos siguientes:

      • dataspa (carpeta de la aplicación)

      • engine (carpeta de la aplicación)

      • visionarisui (carpeta de la aplicación)

      • mondogdb (carpeta de la aplicación y repositorio de las bases de datos)

      • logs (carpeta para los registros)

      • resources (carpeta para los recursos)

      • hadoop (carpeta con la aplicación hadoop)

      • uninstall.exe (aplicación para desinstalación)

    • Se realizan los siguientes procesos:

      • Se instalan como servicios de windows y se ponen en marcha lo siguiente:

        • dataspa

        • engine

        • visionarisui

        • mongodb (se crea una instancia exclusiva para la aplicación, habilitándose en el puerto tcp 10017. Cuando visionarisui se pone en marcha, crea una base llamada VisionarisV7)

        • Se crea la variable de entorno HADOOP_HOME (esto posiblemente se cambie)

    • Cuando finaliza la instalación, se habre en forma automática el navegador web apuntando a http://localhost, que es en donde está publicada por default la aplicación)

 

 

@ Visionaris - Todos los Derechos Reservados