Nullsoft Scriptable Install System

Nullsoft Scriptable Install System (NSIS) on avatud lähtekoodiga Microsoft Windows platvormile tehtud süsteem paigalduspakkide valmistamiseks. Selle töötas välja Nullsoft, mis oli omakorda rajatud Winampi poolt. NSIS on loodud alternatiiviks kommertstoodete jaoks mõeldud InstallShieldile.

Ajalugu 
NSIS oli loodud Winampi levitamiseks. See põhineb varasemal tootel Nullsoft – PiMP (plugin Mini Packager), mis on tuntud ka kui SuperPiMP. Pärast 2.0a0 versiooni koliti projekt SourceForge.net keskkonda, kus arendamisega liitusid ka välised arendajad. NSIS 2.0 anti välja 2 aastat hiljem.
Esimese versiooni NSIS oli väga klassikalise Windows Installeri sarnane, aga see oli tänu skriptidele juhitavam ning see toetaks ka teisi arhiivimisvorminguid. Teise versiooni NSIS toetas uut graafilist kasutajaliidest,LZMA- tihendust, mitmekeelsust ja omas head pluginasüsteemi.

Posix 
Versioon 2.01 oli esimene versioon, mis toetas kompileerimist igal POSIX-platvormil. See võimaldas luua Windowsi installereid GNU/Linux ja FreeBSD jaoks, kasutamata Wine emulaatorit. Seni toetati kompileerimist ainult Windowsis.

Skript 
NSIS kompilaator – ’’makensis’’ programm – kompileerib skripte kasutatavasse koodi. Iga skripti rida sisaldab üht käsku.
Näide:

 # Skripti näide
 Name "Example1"
 OutFile "example1.exe"
 InstallDir "$PROGRAMFILES\Example1"
 Page Directory
 Page InstFiles
 Section
   SetOutPath $INSTDIR
   File ..\makensis.exe
 SectionEnd

Modern User Interface 
Versioonis 2.0 oli võetud kasutusele uus graafiline kasutajaliides, mille nimeks sai Modern UI (MUI). MUI on masterite liidesega sarnane, ta toetab splash-avakuva, keele valikut, installitavate komponentide valikut ning palju laialdasemaid seadistamise võimalusi võrreldes oma eelkäijaga.
Näide:

 # Skripti näide Modern UI-ga
 !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

Pluginad 
NSIS-st on võimalik täiendada mitmesuguste pluginatega, mis võivad olla kirjutatud C++, C-s ja Delphis. Pluginaid võib kasutada installeri liidese ja funktsionaalsuse parendamiseks ning neid võib välja kutsuda igas NSIS-i skripti osas.
NSIS-i paketiga tarnitakse mitmeid pluginaid, mis võimaldavad lisada uusi lehekülgi, vahetada tausta, Internetist faile alla laadida, teha matemaatikatehteid, uuendada faile ja teha palju muudki.

Iseärasused  
Väga väike installimisplokk (ligi 34 kB);
zlib-, bzip2- ja LZMA-tihendus;
Painduv skriptide süsteem;
Mitmekeelsus;
Pluginate tugi;
Skript Preprotsessor;
Veebiinstallerite loomine.

Programmid ja mängud, mis kasutavad NSIS-i  

 Kaspersky Antiviirus
 7-Zip
 ATI Display Driver
 CDex
 Dev-C++
 DivX
 eMule
 EVE Online
 FileZilla

 FL Studio
 Google Picasa
 Google Talk
 Hedgewars
 Intel C (kompileerija)
 IrfanView
 LyX
 Miranda IM
 Mozilla Firefox 2.0

 NASA World Wind
 Notepad++
 OpenOffice.org Windowsi jaoks
 OpenVPN
 Pidgin
 Qt SDK
 VLC Player
 Winamp

Redaktorid 
NSIS-i skriptid on iseenesest tavalised tekstifailid ja neid saab moodustada ükskõik millise tekstiredaktori abil. Sellegipoolest on välja töötatud ka spetsiaalseid programme, mis kergendavad skriptide loomise protsessi:
Projekt EclipseEnsis SourceForge.net websaidil – plugin Eclipse'i jaoks, mis võimaldab redigeerida, kompileerida ja testida NSIS-i skripte;
HM NIS EDIT – NSIS-redaktor/IDE;
Venis – visuaalne keskkond NSIS-i jaoks.

NSIS Media Malware 
NSIS-i nime kannab ka ettevõte, mis tegeleb kuritahtliku tarkvara levitamisega (kahjulikud programmid). Eeldatavalt võttis ettevõte sellise nime, et näida soliidsem ja legaalsem, aga see osutus kahjulikuks NSIS-i installeri reputatsioonile, millel pole kuritahtliku tarkvaraga mingit pistmist. Osa kasutajatest kinnitas, et kõik NSIS-iga tehtud distributsioonid sisaldavad vastavat pahavaralist kahjulikku programmi. Tegelikult sõltub kahjuliku koodi olemasolu distributsiooni loojast ja levitamise kanalitest.

Viited

Välislingid
 Projekt EclipseEnsis SourceForge.neti veebisaidil
 NSIS Projekti lehekülg SourceForge'i veebisaidil
 Kuu projekt SourceForge.net jaanuar 2006
 Mihov’s freeware NSIS editor
 ExperienceUI for NSIS – kestade tugi

Vaba tarkvara