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

I have a "largish" Perl application (about 7000 lines, with maybe ten perl modules installed) for PC users. I give the application away freely for those interested, but it's a narrow niche, and most of the users never heard of Perl. So far I have been able to get new users going with carefully detailed instructions to go to ActiveStates, install Perl, the run PPM, etc. It works, but I get a lot of calls for help from some poor drub who can't read and follow even simple, basic instructions.

There are many potential users who could benefit from my program, but simply aren't willing or able to go to the work necessary to set up the Perl environment. I know I am losing audience because my program is simply too hard for the unsophisticated PC user to get going. The purpose here is to sell folks on how EASY perl is to use, not scare them away with how HARD it is.

I could Auto-install the various modules (although that seems to be unreliable in my experience) but that still leaves the complexity of installing ActiveStates, etc.

Is there any reasonable way of providing a batch file, or other "one-click" tool to allow an unsophisticated user to easily install the complete environment ready to go? I have used a couple of installers in the past, and while they can get all MY files in place painlessly, they can't seem to do the whole job.

What do the Monks recommend?

Nat

Replies are listed 'Best First'.
Re: Installer for Perl Application
by tilly (Archbishop) on Jul 10, 2009 at 05:25 UTC
    Have you tried Par? It allows you to create an executable which contains your modules, application, and Perl in a zip file. No installation required.
      Gee. Never heard of Par. But it sounds like just what I need. Is that a take-off on 'Tar'? Sounds perfect. Thanks, I will look at it...

      Nat

        After an afternoon of reading docs, experimenting, and hair-pulling, I am giving up on PAR and PP, for much the same reason that I don't use Perl2Exe. It doesn't seem to work, or works unreliably, for this program. At this level of program complexity (Tk, Win32, SAPI, OLE, etc) it just seems to break. I tested some simpler programs that seem to work fine when compiled to an EXE using PP, but this one is just too complex.

        What I want is simply a simply way to install Active Perl, along with a list of PM's, all of which are in the Active PPM, and then drop my files into the appropriate directories. I had hoped that PAR could do that, but alas, it does not seem to quite do what I need.

        Thanks for all the help, but sadly, no joy.

        Nat

Re: Installer for Perl Application
by GrandFather (Saint) on Jul 10, 2009 at 07:15 UTC

    Cava Packager is pretty good for generating Windows installers for Perl applications.


    True laziness is hard work
Re: Installer for Perl Application
by DimOK (Novice) on Jul 10, 2009 at 05:34 UTC
    Or Perl2Exe, that worked for me too...

    you might also want to make a *.bat file which will do all dirty job (in case they are running windows), like fetching perl package, install it, install cpan modules etc...
    example you can see here, it is a local web server install-kit and all processing is done as a .bat file.
      I could not make Perl2Exe work with this program. It seems that Tk breaks it. I have gotten it to work a few times, but it is not reliable.

      But I really do not want to give out just an EXE. I am doing this to try and educate folks about Perl, and to encourage them to tinker with it. I want them to see the source, and play with it. Just handing them an EXE blunts that whole process.

      This is supposed to be an educational effort, not a canned application. Oh well, thanks for the suggestion.

      Nat

      The link didn't seem to work so well, but this is essentially what I wound up doing, although I used perl instead of windows batch. It works, but I worry that it will break too easily. Still, it allows a clueless user to get the program up and running with minimal hassle.

      Cava packager seems like a good solution too, but I haven't quite figured out the right tweaks to get the result I want. I am playing with it more, in hopes that it will be the ultimate solution.

      Thanks to all those who helped.

      Nat

Re: Installer for Perl Application
by Khen1950fx (Canon) on Jul 10, 2009 at 05:45 UTC
    It works, but I get a lot of calls for help from some poor drub who can't read and follow even simple, basic instructions.

    You should be glad that you are getting calls for help---that means somebody is trying to use your program. That's a start. Now it's up to you to make the instructions simpler and more understandable. Follow tilly's advice.

      Well, I am always glad for feedback that people are using my program. But some are really beyond reach, or so it seems. Maybe Some people are just beyond any attempts to educate.

      But I hold out hope that if someone can get it up and running, curiosity will lead them to tinker at some point. And any time I spend on trivial installation stuff is time I cannot spend on improving the program. I want to get the uninitiated user over that first big Perl "learning curb" and get something working for them.

      Thanks, Nat

Re: Installer for Perl Application
by Bloodnok (Vicar) on Jul 10, 2009 at 11:01 UTC
    Other, eminently sensible suggestions aside, if you have the PDK (Perl Development Kit), you can generate a self-contained 'binary' from your application using the PerlApp tool - in that way avoiding the requirement to deliver and install a perl environment to your intending user.

    A user level that continues to overstate my experience :-))
      As with the Perl2exe suggestion, this is the wrong direction. I WANT to put the Perl environment on the user's PC, so that I can lead them into the opportunity to tinker and learn. I just want to do so with minimum fuss and bother for that initial setup.

      My hidden motive here is to seed the user base with Perl and working applications and encouragement to tinker, in the hopes that one day a few of them will grow into Perl enthusiasts. Just handing a working EXE to them, with all the "bones" carefully hidden away defeats the purpose. I want to give them the whole Perl Magic, and make it easily accessible to anyone who cares to look under the hood.

      Thanks, Nat

        In which case, why not try Strawberry perl - it's free, far simpler and what's more, far more flexible since it comes bundled with a C compiler and make.

        A user level that continues to overstate my experience :-))