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:


```nsis
# 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:


```nsis
# 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