Nullsoft Scriptable Install System
history,|operating_system = Windows, POSIX ,|programming language = C, C++ ,|genre = 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 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.
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.
POSIX
Version 2.01 was the first version to compile on POSIX platforms . This allows cross-compilation of Windows installers on Linux and FreeBSD without the usage of Wine. Currently, the only supported hardware platform is x86.
Concepts
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.
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.
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.
- Very small overhead (34 KB»Features - NSIS)
- zlib, bzip2, and LZMA compression
- Script-based
- Multilingual
- Plugin support
- Script preprocessor
- »More...
Notable products that use NSIS
{|
|
- 7-Zip
- ATI Display Driver
- BitTorrent
- CDex
- DivX
- eMule
- FileZilla
- FL Studio
- Foobar2000
- FreeOTFE
- FrostWire
- GeoServer
- Google (Picasa, Talk)
- Intel C Compiler
- IrfanView
- Kaspersky AntiVirus
- LEGO Digital Designer
- Line 6 Pod Farm / Gearbox
- LyX
- Miranda IM
- Mozilla Firefox
- NASA World Wind
- OpenOffice.org for Windows
- Papertech Inc.
- PortableApps.com
- Pidgin
- Spring
- VLC media player
- Winamp
- Warhammer Online
- »More ...
Graphical Interfaces
NSIS projects can be configured by simply editing text files. 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
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,»Features, NSIS 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. However, »Jim Park has created and is maintaining a variant of NSIS that has Unicode support.
»Unicode plug-in - NSIS
NSIS Media Malware
A wide-spread malware company named itself NSIS Media. NSIS Media and NSIS are not related by anything but name. A few users incorrectly allege that every installer built with NSIS contains this malware. 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.»WINAMP.COM | Forums - nsisdl.dll contains Download.Trojan 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 most programming languages.
- List of installation software
- Excelsior Installer (freeware setup authoring tool with NSIS integration)
- »NSIS home page
- »NSIS SourceForge project page
- »SourceForge.net Project of the Month in January 2006