Nullsoft Scriptable Install System ( NSIS ) es una herramienta de creación de instaladores basada en scripts para Microsoft Windows respaldada por Nullsoft , los creadores de Winamp . NSIS se publica bajo una combinación de licencias de software gratuitas , principalmente la licencia zlib . [2] Se ha convertido en una alternativa ampliamente utilizada a los productos comerciales patentados como InstallShield , con usuarios como Amazon.com , Dropbox , Google , Ubisoft , FL Studio ,BitTorrent y McAfee . [3]
Autor (es) original (es) | Nullsoft |
---|---|
Desarrollador (es) | Equipo NSIS y comunidad NSIS |
Versión inicial | 31 de julio de 2000 [1] |
Lanzamiento estable | 3.06.1 / 31 de julio de 2020 |
Repositorio | |
Escrito en | C , C ++ |
Sistema operativo | Windows , Mac OS X |
Tipo | Herramientas de desarrollo de software |
Licencia | Licencia zlib |
Sitio web | nsis |
Historia
NSIS fue creado para distribuir Winamp. [4] Se basa en un producto anterior de Nullsoft, PiMP (plugin Mini Packager), y también se conoce como SuperPiMP. Después de la versión 2.0a0, el proyecto se trasladó a SourceForge, donde los desarrolladores fuera de Nullsoft comenzaron a trabajar en él de forma regular. NSIS 2.0 fue lanzado aproximadamente dos años después.
La versión 1 de NSIS es en muchos aspectos similar al clásico Windows Installer , pero admite más formatos de compresión. La versión 2 de NSIS presenta una nueva interfaz gráfica de usuario optimizada y es compatible con la compresión LZMA , varios idiomas y un sistema de complementos fácil de usar.
En enero de 2006, NSIS fue el proyecto del mes de SourceForge. [5] [6]
Ejemplos de guiones
¡Hola Mundo!
! incluir "MUI.nsh "! insertmacro MUI_LANGUAGE "Inglés "Nombre "¡Hola mundo! " # Nombre del instalador. OutFile "HelloWorld.exe " # Nombre del archivo del instalador.Función .onInit # Función que se ejecutará al iniciar el instalador. MessageBox MB_OK | MB_ICONINFORMATION "¡Hola mundo! " # Muestra un mensaje que dice "¡Hola mundo!". Salir # Cierra el instalador porque es un simple "¡Hola mundo!" instalador. FunctionEndSección # Sección inútil porque es un simple "¡Hola mundo!" instalador. SectionEnd
Instalador simple
! incluir "MUI.nsh "! define MUI_ABORTWARNING # Esto advertirá al usuario si sale del instalador.! insertmacro MUI_PAGE_WELCOME # Bienvenido a la página del instalador. ! insertmacro MUI_PAGE_DIRECTORY # En qué carpeta se instala la página. ! insertmacro MUI_PAGE_INSTFILES # Página de instalación. ! insertmacro MUI_PAGE_FINISH # Página de instalación finalizada.! insertmacro MUI_LANGUAGE "Inglés "Nombre "MyApp " # Nombre del instalador (normalmente el nombre de la aplicación a instalar). OutFile "MyAppInstaller.exe " # Nombre del archivo del instalador. InstallDir " $ PROGRAMFILES \ MyApp " # Carpeta de instalación predeterminada ($ PROGRAMFILES es la carpeta Archivos de programa). ShowInstDetails show # Esto siempre mostrará los detalles de instalación.Sección "MyApp " # En esta sección agregue sus archivos o sus carpetas. # Agregue sus archivos con "Archivo (Nombre del archivo)", por ejemplo: "Archivo" $ DESKTOP \ MyApp.exe "" ($ DESKTOP es la carpeta del escritorio); o agregue sus carpetas siempre con "Archivo (Nombre de la carpeta) \ *", agregue siempre sus carpetas con un asterisco, ejemplo: "Archivo / r $ DESKTOP \ MyApp \ *" (esto agregará sus archivos y (con / r sus subcarpetas)). SectionEnd
Conceptos
Texto
El programa compilador de NSIS makensis compila scripts como el siguiente ejemplo en programas de instalación ejecutables. Cada línea del script contiene un solo comando.
# Ejemplo de script Nombre "Example1 " OutFile "jubaowu.exe " InstallDir " $ PROGRAMFILES \ Example1 " Página Directorio Página InstFiles Sección SetOutPath $ INSTDIR File .. \ makensis.exe SectionEnd
Interfaz de usuario moderna
La versión 2.0 introdujo una nueva interfaz gráfica de usuario optimizada opcional llamada Modern UI (MUI). La MUI tiene una interfaz similar a un asistente. Admite una página de bienvenida, una página de finalización, un cuadro de diálogo de selección de idioma, un área de descripción de componentes y mayores opciones de personalización que la interfaz de usuario anterior.
# Modern UI script de ejemplo ! Incluyen MUI.nsh Nombre "Ejemplo 2 " archivo de salida "Example2.exe " ! Insertmacro MUI_PAGE_WELCOME ! Insertmacro MUI_PAGE_LICENSE "license.rtf " ! Insertmacro MUI_PAGE_DIRECTORY ! Insertmacro MUI_PAGE_COMPONENTS ! Insertmacro MUI_PAGE_INSTFILES ! Insertmacro MUI_PAGE_FINISH ! Insertmacro MUI_LANGUAGE "Inglés " ! insertmacro MUI_LANGUAGE "Alemán " ! insertmacro MUI_LANGUAGE "Francés " Sección "Extraer makensis " SetOutPath $ INSTDIR Archivo .. \ makensis.exe SectionEnd
Desde la versión 2.30 de NSIS (lanzada el 25 de agosto de 2007), hay una nueva versión (beta) de esta interfaz de usuario accesible: Modern UI 2 (MUI2), que es una mejora de la interfaz de usuario moderna. A diferencia de la antigua MUI, esta versión se basa en nsDialogs en lugar de los antiguos archivos .ini de InstallOptions.
A partir de la versión 2.34 (lanzada el 24 de diciembre de 2007), este MUI2 está listo para el consumo masivo y se incluye en todos los paquetes de NSIS. Además, todos los ejemplos se habían cambiado a él.
Documentación de la interfaz de usuario moderna 2.
Interfaces gráficas
Los proyectos NSIS se pueden configurar simplemente editando archivos de texto (con extensión .nsi). Sin embargo, varios terceros proporcionan software de edición:
- EclipseNSIS es un módulo para la plataforma Eclipse . Permite editar, compilar y validar scripts de NSIS.
- Editor HM NIS Edit (freeware) compatible con plug-ins personalizados de C ++ o Delphi .
- Editor de Venis (software gratuito)
- Visual & Installer es un complemento que integra NSIS con Microsoft Visual Studio IDE y permite crear y construir proyectos NSIS directamente dentro de él.
Interfaces de instalador
En los últimos años se han iniciado varios proyectos que amplían o reemplazan la interfaz de usuario moderna. Interfaces como ExperienceUI y UltraModernUI cambian por completo el estilo del instalador al aplicarle una máscara para que se parezca a la interfaz InstallShield . Otras interfaces como installSpiderUI apuntan a un enfoque más minimalista en el lado visual de las cosas mientras mantienen el mismo nivel de funcionalidad que el ASD.
Complementos
NSIS se puede ampliar con complementos que pueden comunicarse con el instalador. Los complementos se pueden escribir en cualquier lenguaje de programación no administrado capaz de construir una biblioteca de vínculos dinámicos (como C, C ++ o Delphi) y se pueden usar para realizar tareas de instalación o extender la interfaz del instalador. Se puede llamar a un complemento con una sola línea de código NSIS.
Varios complementos vienen con el paquete NSIS que permiten al instalador mostrar una pantalla de bienvenida, mostrar una página personalizada, mostrar una imagen en el fondo, descargar archivos de un sitio web, realizar operaciones matemáticas, archivos de parche y más.
Hay otros complementos disponibles en línea, incluidos ZipDLL y un complemento de Python .
Características
NSIS admite las siguientes funciones: [7]
Instalador generado
El instalador generado es un ejecutable portátil , con los archivos de instalación archivados dentro del instalador, una sobrecarga de 34 KB para el instalador NSIS, [7] y el script de instalación compilado en código ejecutable. A medida que se compila el script de instalación, no se puede obtener el script del ejecutable entregado sin realizar ingeniería inversa del binario.
El archivo se puede descomprimir usando 7-Zip , el complemento InstallExplorer de Total Commander o el complemento InstallExplorer de FAR Manager .
El archivo contiene varias carpetas:
- $ PLUGINSDIR : complementos de rutina de instalación
- $ INSTDIR : archivos usados durante la instalación
- $ _OUTDIR : archivos a instalar.
El instalador generado incluye argumentos en la línea de comandos para dar más control a los usuarios: [8]
- / NCRC deshabilita la verificación CRC, a menos que el script la fuerce
- / S ejecuta el instalador / desinstalador de forma silenciosa.
- / D establece el directorio de instalación predeterminado. Debe ser el último parámetro y no debe contener comillas. Solo se admiten rutas absolutas.
Soporte Unicode
Las versiones de NSIS anteriores a la 3.0 no admitían Unicode, sino solo un medio para convertir algunos archivos a diferentes codificaciones a través de un complemento. [9] Sin embargo, está disponible una variante de NSIS que tiene soporte completo para Unicode. [10] Los proyectos notables que utilizan esta variante son: [11]
- Google ( Picasa )
- Apache OpenOffice para Windows
- Mozilla ( Firefox , Mozilla Thunderbird )
- FileZilla
- Winamp
- Flickr
- PortableApps.com
- Segunda vida
- Xampp
- CherryPlayer
- AVG
- TeamViewer
Con el lanzamiento de la versión 3.0 de NSIS, la compatibilidad con Unicode se puede implementar utilizando la directiva del compilador "Unicode true". Esto brinda compatibilidad total con Unicode sin más cambios de código, pero el instalador no se ejecutará en Windows 95/98 / Me. [12] A partir de 2016, antes de la versión 3.0, NSIS estaba disponible en formato PortableApps para Unicode 2.46.5 Rev 3 y ANSI 2.51. [13]
Ver también
- Lista de software de instalación
Referencias
- ^ Historial de versiones de NSIS 1.x - NSIS wiki
- ^ "Página de licencia de NSIS" . NSIS.
- ^ "Usuarios - NSIS" .
- ^ Lanzamiento de Winamp 2.60 , de Betanews, 2000-02-14, Tweakers, ... es decir, presenta un nuevo sistema de instalación 'SuperPiMP' ...
- ^ SourceForge.net Proyecto del mes en enero de 2006
- ^ "Comparación de plataforma de instalación de OpenCandy" . Archivado desde el original el 27 de junio de 2011 . Consultado el 27 de junio de 2011 .CS1 maint: bot: estado de URL original desconocido ( enlace )
- ^ a b "Características" . NSIS.
- ^ "installerUsage" . NSIS.
- ^ "Complemento Unicode" . NSIS.
- ^ "Página del proyecto Unicode NSIS" .
- ^ "Usuarios del proyecto Unicode NSIS" .
- ^ "Capítulo 1 del Manual de uso de NSIS" . NSIS . Consultado el 26 de mayo de 2015 .
- ^ "NSIS Portable" . PortableApps.com . 19 de mayo de 2016 . Consultado el 4 de julio de 2016 .
enlaces externos
- Página web oficial
- NSIS en SourceForge.net
- NSIS en Open Hub
- Compilaciones no oficiales de 64 bits