Nullsoft Scriptable Install System

Nullsoft Scriptable Install System
NSIS screenshot.png
NSIS Installer
Developer(s) Nullsoft
Stable release 2.46 / December 5, 2009; 23 months ago (2009-12-05)
Written in C, C++
Operating system Windows, POSIX
Type Software development tools
License zlib license
Website nsis.sourceforge.net

Nullsoft Scriptable Install System (NSIS) is a script-driven Windows installation system with minimal overhead backed by Nullsoft, the creators of Winamp. NSIS has risen to popularity[1] as a widely used alternative to commercial and proprietary products like InstallShield.

NSIS is free software released under a combination of free software licenses, primarily the zlib license.[2]

Contents

History

NSIS was created to distribute Winamp. It is based on a previous Nullsoft product, PiMP (plugin Mini Packager), and is also known as SuperPiMP. After version 2.0a0, the project was moved to SourceForge where developers outside of Nullsoft started working on it on a regular basis. NSIS 2.0 was released approximately two years later.

NSIS version 1 is in many ways similar to the classic Windows Installer, but it is easier to script and supports more compression formats. NSIS version 2 features a new streamlined graphical user interface and supports LZMA compression, multiple languages, and an easy to use plugin system.

Concepts

NSIS 1.98

Script

The NSIS compiler program makensis compiles scripts like the following example into executable installation programs. Each line in the script contains a single command.

# Example script
Name "Example1"
OutFile "example1.exe"
InstallDir "$PROGRAMFILES\Example1"
Page Directory
Page InstFiles
Section
  SetOutPath $INSTDIR
  File ..\makensis.exe
SectionEnd

Modern user interface

Version 2.0 introduced a new optional streamlined graphical user interface called Modern UI (MUI). The MUI has a wizard-like interface. It supports a welcome page, finish page, language selection dialog, description area for components, and greater customization options than the old user interface.

# Modern UI example script
!include MUI.nsh
Name "Example 2"
OutFile "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 "English"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "French"
Section "Extract makensis"
  SetOutPath $INSTDIR
  File ..\makensis.exe
SectionEnd


Since NSIS version 2.30 (Released on August 25th, 2007) there is new version (beta) of this UI accessible: Modern UI 2 (MUI2) which is an enhancement to Modern UI. Unlike the old MUI this version is based on nsDialogs instead of old-fashioned InstallOptions .ini files.

From version 2.34 (Released on December 24th, 2007) this MUI2 is ready for mass consumption and it is included in all NSIS packages. Also all examples had been switched to it. Modern UI 2 documentation.

Plugins

NSIS can be extended with plugins that can communicate with the installer. Plugins can be written in C, C++, and Delphi, and can be used to perform installation tasks or extend the installer interface. A plugin can be called with a single line of NSIS code.

Several plugins come with the NSIS package that permit the installer to display a splash screen, display a custom page, display an image on the background, download files from a website, perform mathematical operations, patch files and more.

Other plugins are available online, including ZipDLL, and a Python plugin.

Features

NSIS supports the following features:[3]

Graphical interfaces

NSIS projects can be configured by simply editing text files (with .nsi extension). However, several third parties provide editing software:

  • EclipseNSIS is a module for the Eclipse platform. It allows NSIS scripts to be edited, compiled and validated.
  • HM NIS Edit (freeware) probably the best NSIS editor with support of custom C++/Delphi plug-ins.
  • Venis (freeware) editor with lot of functions.

Installer interfaces

Several projects that extend or replace the Modern UI have started in the past few years. Interfaces such as the ExperienceUI and UltraModernUI completely change the style of the installer by skinning it to look like the InstallShield interface. Other interfaces like InstallSpiderUI aim for a more minimalistic approach on the visual side of things while maintaining the same level of functionality as the Modern UI.

Generated installer

The generated installer is a Portable Executable, with the installation files archived within the installer, a 34 KB overhead for the NSIS installer,[4] and the installation script compiled into executable code. As the installation script is compiled, the script can not be obtained from the delivered executable without reverse-engineering the binary.

The archive may be unpacked using either 7-Zip, the Total Commander plugin "InstallExplorer", or the predecessor by the same name for the FAR Manager.

The archive contains several folders:

  • $PLUGINSDIR : installation routine plugins
  • $INSTDIR : files used during the installation
  • $_OUTDIR : files to be installed.

Unicode support

The official release of NSIS does not support Unicode but only a means to convert some files to different encodings via a plugin.[5] However, a variant of NSIS that has full Unicode support is available.[6] Notable projects using this variant are:[7]

Unrelated NSIS Media malware

A widespread malware company named itself NSIS Media. NSIS Media and NSIS are not related by anything but name. A few users[who?] incorrectly allege that every installer built with NSIS contains this malware.[citation needed] Choosing a reliable download source, as with everything downloaded from the Internet, should be done to avoid this malware.

Several antivirus companies have labeled plugins such as NSISdl, which provides HTTP downloading functionality, as trojans.[8] This is also incorrect. While NSIS is a scriptable system and thus could be used to create malware, that is not its primary purpose and this condition in fact applies to all programming languages.

See also

References

External links


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Nullsoft Scriptable Install System — Développeur Nullsoft Dernière version …   Wikipédia en Français

  • Nullsoft Scriptable Install System — NSIS установщик Тип Установщик Разработч …   Википедия

  • Nullsoft Scriptable Install System — Skriptgesteuertes Installationssystem für Software auf Windows Systemen Basisdaten Entwickler Nullsoft …   Deutsch Wikipedia

  • Nullsoft Scriptable Install System — NSIS Installer Desarrollador Nullsoft …   Wikipedia Español

  • Nullsoft Scriptable Install System — NSIS (Nullsoft Scriptable Install System, en inglés sistema de instalación por scripts ), es un sistema de código abierto para la creación de instaladores mediante scripts, desarrollado inicialmente por Justin Frankel de Nullsoft para su programa …   Enciclopedia Universal

  • Nullsoft — Logo von Nullsoft Nullsoft ist ein Software Unternehmen, das unter anderem die Produkte Winamp, SHOUTcast und Nullsoft Scriptable Install System (NSIS) verbreitet. Der Name spielt auf Microsoft an, da Null kleiner als Micro ist.[1] Das Unternehm …   Deutsch Wikipedia

  • NSIS — Nullsoft Scriptable Install System Nullsoft Scriptable Install System Développeur Nullsoft …   Wikipédia en Français

  • Installation (Software) — Die Installation von Software ist der Vorgang, bei dem neue Programme auf einen vorhandenen Computer kopiert und dabei eventuell konfiguriert werden. Dieser Vorgang wird speziell unter dem Betriebssystem Windows auch Setup (englisch für Aufbau)… …   Deutsch Wikipedia

  • Installationsroutine — Die Installation von Software ist der Vorgang, bei dem neue Programme auf einen vorhandenen Computer kopiert und dabei eventuell konfiguriert werden. Dieser Vorgang wird speziell unter dem Betriebssystem Windows auch Setup (englisch für Aufbau)… …   Deutsch Wikipedia

  • Programminstallation — Die Installation von Software ist der Vorgang, bei dem neue Programme auf einen vorhandenen Computer kopiert und dabei eventuell konfiguriert werden. Dieser Vorgang wird speziell unter dem Betriebssystem Windows auch Setup (englisch für Aufbau)… …   Deutsch Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.