The Nullsoft Scriptable Install System (NSIS) is an open-source tool for building "setup.exe" for Windows that install your application. In addition to installing files into their proper locations, NSIS is scriptable and can be used to implement logic during the installation process.
The ouput of NSIS is an .exe -- this is not a Microsoft Installer Package (.msi). While .msi is probably better package management tool, NSIS has one advantage that works for me -- you can build installer programs for Windows under Linux. This is useful as I often have java apps that can be deployed into multiple platforms ... the ability to compile once and build .deb, .rpm, .ipk and windows .exe installers is very convenient.
NSIS has two components ... a compiler that you run on your build host, and also many smaller stubs which are integrated together to form the installer program. The subs are windows code, and therefore need a windows compiler or cross-compiler. An easier way to install it is described at http://nsis.sourceforge.net/Docs/AppendixG.html, which is to compile the compiler on Linux, but just extract the stubs from the regular downloadable binary of nsis for windows.
Note that if you are on Ubuntu you don't need build NSIS yourself, you can just "sudo apt-get install nsis". So these instructions are mostly of use if you run CentOS or some other Linux, where a ready made NSIS is not available, or if you want the latest and greatest version of NSIS.
Here are the steps:
- su - root
- # If you change them, make sure the two versions numbers below are identical
- wget https://jaist.dl.sourceforge.net/project/nsis/NSIS%203/3.02.1/nsis-3.02.1-src.tar.bz2
- wget https://jaist.dl.sourceforge.net/project/nsis/NSIS%203/3.02.1/nsis-3.02.1.zip
- cd /usr/local
- unzip /root/nsis-3.02.1.zip
- cd /usr/local/src
- tar xjvf /root/nsis-3.02.1-src.tar.bz2
- cd nsis-3.02.1-src
- scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no PREFIX=/usr/local/nsis-3.02.1/bin install-compiler
- ln -s /usr/local/nsis-3.02.1/bin/makensis /usr/local/bin/makensis
You can now compile your .nsi installer scripts by executing "makensis scriptname".
NSIS includes a GUI app for generating script files ... this is windows-based. You can try running it under Wine or just forgo it and write the scripts by hand.