Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

nandhp writes "The NSIS (Nullsoft Scriptable Install System) project has finally released version 2.0 final. NSIS is a powerful open-source install system for Windows that is based on scripts. It was invented by Nullsoft for the distribution of WinAmp.
You can get it here"

Many apps do, but they usually provide an installer because it is more convenient. It is a single executable package which installs the application in the proper place (under Program Files if the application is half-ass decent) and adds a shortcut to the Start menu.

Compare this to the folder method. You have to download a compressed archive, extract it, drag it to the proper folder, and create a shortcut (or alias or symbolic link) to the proper executable or executables (if the application has more than one program, such as a game and a level editor) in the proper location.

It is a single executable package which installs the application in the proper place (under Program Files if the application is half-ass decent)

No. If the application is "half-ass decent", it allows me to specify where I want it installed in, and *defaults* to Program Files. There are some programs that I do not want installed under the program files directory (fortunately, most 'half-ass decent' programs do allow me to specify where I want it installed). The other thing I would like to see an end to i

The registry was actually there to fix INI issues. It was a wonderful fix. A central location for most settings was and is a good idea. It does not need to be thrown out. Reworked, yes. Thrown out, absolutely not.

Seriously, why don't apps just look at their environment, fix whatever is missing, and not require any install script at all?

There are so many things involved in installation that makes your question one of sheer ignorance. Having worked at a Windows Installation software company, i'll mention a few.

1) DLLs. In order for a DLL to be properly used in a system it must be registered. If it uses OLE, it must be "self-registered". That is, the DLL itself has a subroutine called OLESelf-Register, and it must be called in order to work so the OLE system knows where it is. For a quick example, find ComDlg32.ocx on a system (System or System32 directory) and choose proeprties. On the Version tab, in the list, you will see OLESelfRegister. To selfregister it (it doesn't hurt) go to start run and type regsvr32 ComDlg32.ocx. A dialog box then reports success.

Common DLLs must be marked on the system as to how many program claim to use it. This is so it is deleted only after the very last program stops using it.

Since the DLLs must be placed in the system directory, and the Windows directory is not always known, a system call to get the Windows directory is required.

2) BDE. For those programs using the BDE, the installation process is under an NDA.

3) Uninstall. Creating an uninstall can be painful. An automated system is nice.

4) Installing ODBC. This takes various system calls to be done properly.

5) INI writes. If an INI file is used, the official way to write to it is with as system call. (So NT can divert it to the registry).

There's so much more it's amazing, A very simple project does not need much other than a folder copy (assuming the user can make his own shortcuts). Most programs need some knowledge of Windows, and there is no reason for the programmers to waste their time there.

Also, note, that a great deal of programmers are absolute morons. They having the slightest idea what to do. They can do VB, but when it comes to windows they haven't a clue. For them, an instllation system is a must.

Also, now, with Windows Installer, the installation file must be a specific format. An installation system can make that for you easily.

This is only true of badly-designed, poorly-implemented software. Goodsoftware is *easy* to install.

I will repeat this to you now. This statement is sheer ignorance. You obviously haven't an idea as what goes into an installation.

I have woked on thousands of installation scripts. I've responded to tens of thousands of inquiries. I can tell you, that software intallation is complex, and only the simplest of applications should be "easy" to install.

> > This is only true of badly-designed, poorly-implemented software.> > Good software is *easy* to install.>> I will repeat this to you now. This statement is sheer ignorance.> You obviously haven't an idea as what goes into an installation.

Repeating it doesn't make it any less wrong. If installing the softwareis hard, then the software is badly-written.

> I have woked on thousands of installation scripts. I've responded to> tens of thousands of inquiries. I can tell you, that

Hah! Reminds me of a UI epiphany I had a few years ago. I was trying to get a Windows application bundled up ready to go. I was struggling with InstallShield. This was supposed to be the professional version, but I guess I still had to pay extra for the full functionality. So I was planning to just put everything in a zip archive and distribute it like that. Unzip-and-run, in other words. But I was worried, because that was NOT the Windows w

Some of us probably want to hear what features it had that NSIS didn't.

InnoSetup is VERY easy to use. It has a program that writes the config file for you. You can go from installing InnoSetup to having a perfectly working installer in under ten mintes. A disadvantage over NSIS is that the installer size overhead is much greater.

Second Life [secondlife.com] has been hapily using NSIS -- featuring Super-PIMP(tm) technology -- for 3 years. We played with just about all of the different installers and settled on NSIS because it generated by far the fastest installs and also created the smallest files. Throw in the fact that it was incredibly easy to use and you had a winner. We haven't switched over to 2.0, though.

Check Gentoo forums: last summer there was a project letting Gentoo Portage to run on Cygwin. And it worked! Too bad there is no people with resources (time for support and bandwidth for downloads) behind to continue it.

Seriously, there are times when these scripting systems can't do the heavy lifting of a "real" scripting language. I've often thought that Python might be an ideal embedded scripting language for an installer, especially with Mark Hammond's excellent Windows Extensions [python.net].

Has anyone used this NSIS/Python package? I suppose the only thing stopping me from trying at this point is my own laziness. Alas, this plugin requires that you track your own Python module dependencies.

So let me get this straight. Just to install a small freeware program which does something maybe slightly entertaining (hopefully greatly entertaining of course), you want the me to install an entire scripting engine along with it, just to get it installed? That doesn't make sense to me.

a quote from their readme.txt:The packed python22.dll adds less than 400k to the installer
executable. One disadvantage stays so far: dependecy have to
be tracked manually. If an extension module is used (py or pyd)
it mus