Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

OT Windows Installers

by jdtoronto (Prior)
on Sep 29, 2004 at 17:49 UTC ( [id://395075]=perlquestion: print w/replies, xml ) Need Help??

jdtoronto has asked for the wisdom of the Perl Monks concerning the following question:

Esteemed monks,

I descend further and further into the dark and dismal abyss of Windows programme distribution. My Perl/Tk application has become something of a instant success in its niche market. Now the folk I wrote it for have called and asked "can we have one of those cute Windows Installer thingies for it?".

Do you have any suggestions as to what I might look at? I see products ranging from $500 to $7000 and I have absolutely no idea where I should start.

jdtoronto

Replies are listed 'Best First'.
Re: OT Windows Installers
by Corion (Patriarch) on Sep 29, 2004 at 18:09 UTC

    Here are some zero-money solutions:

    • Inno Setup - Something like Installshield. Quite powerfull.
    • Nullsoft installer - used for WinAmp and lots of other stuff. Simple minded but seems to work for many people

    I have only briefly used InnoSetup and never used the Nullsoft thing, so I can't really vouch for them. The InnoSetup thing was pretty painless though.

    Update: Wassercrats spotted that I put the wrong URL for Inno Setup in the node

      I have used the Nullsoft installer (nsis.sourceforge.net) -- and it's very very powerful. I have an installer now that lays down a driver, updates the registry, copies some files, all with a shiny GUI -- there are quite a few examples that will be installed with NSIS, it basically is a mini (if not weak) programming language, unlike InstallShield -- which is a n evil GUI clickfest.

      Anyhow, I love NSIS -- my script to build this one particular installer is a 163-line Ruby program, and that includes the installer source skeleton in the data segment. I also have another installer builder that is written in Perl, and that module, with absolutely no DATA segment cheating, is 300 lines.

      I don't want to make Perl/Ruby comparisions -- the one I did in Perl was for a product that was a lot harder to install. But anyway, my point -- building an installer by writing code rocks, and it's almost as cool as building a tarball :)

      I have packaged apps up using Inno Setup before and highly recommend it. It is a straightforward tool and is much simpler to use if you also use ISTool (http://www.istool.org/). ISTool gives you a GUI for writing the Inno Setup installation scripts. This gets you up and running right away without having to learn the details of the installer's script syntax. You can literally put together your basic installer in 10 minutes.

      The Nullsoft tools are powerful but they use a custom mini-language. If you are willing to learn how to use that or learn how to plug other languages into the system then they may be good choice. However, unless you need some fancy data munging or processing during your install I would recommend Inno Setup and ISTool as a much faster way to build a Windows installer.

      Your links point to the same page.
Re: OT Windows Installers
by bsdz (Friar) on Sep 29, 2004 at 18:08 UTC
    I'd suggest MakeMSI, I feel it is more flexable than ActiveState's offering and it's free! I have used both.
Re: OT Windows Installers
by ikegami (Patriarch) on Sep 29, 2004 at 17:57 UTC
    ActiveState's Perl Dev Kit (<$200) has something called PerlMSI which might be useful.
Re: OT Windows Installers
by hackdaddy (Hermit) on Sep 29, 2004 at 23:07 UTC
      WIX is a very nice toolkit, and it is also Microsoft's first public open source project. The main developer has a blog that contains more info about it.

Re: OT Windows Installers
by HelgeG (Scribe) on Sep 30, 2004 at 09:38 UTC
Re: OT Windows Installers
by dragonchild (Archbishop) on Sep 29, 2004 at 18:22 UTC
    My followup question on jdtoronto's question would be this: What do you bundle with the installer? For example, do you bundle ActiveState? What about MySQL? Cygwin? Where does that end?

    Being right, does not endow the right to be rude; politeness costs nothing.
    Being unknowing, is not the same as being stupid.
    Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
    Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

    I shouldn't have to say this, but any code, unless otherwise stated, is untested

      dragonchild

      Excelent question! I develop using ActiveState ( I have Komodo-Pro ) and I package with PerlApp right now, but I have also used PAR successfully on the same project.

      The application is pure-Perl/Tk which uses MySQL. I have about 385mb of data which right now I ship as a directory on the CD-ROM which the user has to copy into the \mysql\data\ directory during the installation process.

      Currently I distribute a MySQL installer pacakge on the CD with my software. But their is no attempt at automation at all!

      I have no real idea where to start. It seems that the average Windows user does not know how to get to a command prompt, let alone what to do with it when he finds it. We did a conference call last night with about 50 purcahsers and they were able to install the product, but only with the help of four pages of documentation for a simple job with only about 10 command line actions. I can reduce that to three with a .bat file, but even so, I don't want to spend my life on conference calls, particularly when it looks like my client could sell a thousand of these without any difficulty in the next couple of weeks!

      jdtoronto

        Ok, this is OT but here goes. ActiveState says you can't distribute ActiveState by yourself without a license. A PAR executable could do nothing but evaluate a perl file passed into it on the command line. This, in effect, is not Perl, but a Perl program .. does this constitute distributing ActiveState perl?

        I have no interest in doing this -- but I have used a PAR app before (it actually did something other than evaluate Perl code), though we never quite got the legal ok. I told my boss, "let the lawyers figure this out", and evidentally it passed. I was not about to make the decision myself. Really, I wish we bought the ActiveState license -- that would have been the way to go.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://395075]
Approved by ikegami
Front-paged by Courage
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (1)
As of 2024-03-19 03:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found