Archive: NSIS, Version Control and Package creation


NSIS, Version Control and Package creation
Hi People

My first post here. I've been reading the NSIS wiki for the past few weeks to determine if it is suitable for my requirements.
Basically, I'm looking for a tool that can take a bunch of files exported from Version Control (e.g Subversion) and package those up into a single installer.

My build system is Linux, so I'm intrigued by the use of NSIS on this system to give me a binary containing all the instructions to install the package but am not sure how to actually do this.

Currently these files make up modules of various web applications, meaning it's just a simple matter of moving files to the correct location. Other tasks could involve calling external programs, for instance to install a new database schema on a DB server.

On Linux this is all handled very nicely by RPM and a shell script. The RPM package has a SPEC file that includes all the instructions for installing the various files and calling up other binaries. In the case of NSIS, I guess the .nsi file contains the same info as the RPM .spec file

At the end of the day, I would like one package that can be handed over to an Ops team and be installed in one action. Given I work with Linux and Windows systems the package needs to be either an RPM or an EXE, respectively.

I'd also like to build a wrapper (API?) that someone can use to point at a tag in the Subversion tree and say "I want a Windows/Linux/..." package of this source.

So my questions are:
1. Is there an easy to understand tutorial for getting NSIS working under Linux for the creation of Installers?
2. Am I on the right track in thinking that NSIS can do the same thing as RPM?
3. I believe I need Scons and MinGW for this to happen. Is that right?

Any help would be appreciated. TIA.

Cheers
James


  1. There's no need for a tutorial. Simply download the source code and follow the instructions in INSTALL or the more detailed documentation.
  2. Yes, NSIS can move files around and execute applications. It creates an executable installation package.
  3. Indeed. Make sure you download SCons 0.96.91 (which is still in beta), and not 0.96.1. MinGW is optional, as you can use the pre-built stubs from the ZIP package.

Making a simple nsi script to copy files
Hey

Thanks for the info. I successfully installed makensis on Fedora from source using scons. Really easy.

My text task is to create a really simple .nsi script to:
* get files from a source tarball (or maybe a source directory) and place them in the installer package
* pass some parameters in from the command line to the nsi script (like version numbers)
* install the files to a specified location when the installer is run
* uninstall these files when needed

I've read through the docs on the site and and can see I should start with CopyFiles. I'm still learning the nsi script so if any pointers or example code can be provided on the above script that would be great.

I can't find where nsi gets the source files from - maybe I am staring at it?

I am only an egg

Thanks
James


You should actually start with File. CopyFiles copies file on the destination machine. That means you'd have to distribute the files along with the installer, instead of inside it, as with File. The Examples directory has many example that copy files over and uninstall them as well. You can start there.