Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

perl application installation

by arcnon (Monk)
on Feb 11, 2006 at 16:38 UTC ( #529562=perlquestion: print w/replies, xml ) Need Help??
arcnon has asked for the wisdom of the Perl Monks concerning the following question:

I could really use some direction folks.

I wrote a application. And it came from on high that it is so great that it would be used at several other campuses yeah!!!!.... Unforunately it hasn't been as easy to make happen as I had hoped.

It seems that because of the crazy that the other campuses are perl illerate maybe resistant is a better word.

So the politics run red in the IT department. It has been deemed that it isn't my responsiblity to go to the differant campuses and set them up BUT I have to support them besides the normal bugs and what not.

the application has a web interface that generates data entry forms with custom widgets and manages mutiple instances of the application and queries of the form data. Much of the work is done through a deamon that generates a custom CGI::Application for use with the custom widgets and queries.

I was thinking if I could create a installer it would be ideal and take most of the headache from the process. But after googling for some type of solution I am still drawing a blank. Should create it as a 'bundle' or some hand woven installer?

I realize that I have a few hurdles left... windows vs linux installations, Line endings, install locations, module dependancies and whatever crops up as I proceed. If I don't use a 'bundled' installer.

Is creating a 'module bundle' the best approach for this or is there some magic that I don't know about.

Replies are listed 'Best First'.
Re: perl application installation
by brian_d_foy (Abbot) on Feb 11, 2006 at 17:47 UTC
Re: perl application installation
by graff (Chancellor) on Feb 11, 2006 at 17:22 UTC
    It seems like you have multiple layers of issues here, but your description of the app is not clear enough yet to lead to useful advice.

    One layer: you developed on linux, and someone wants you to port to ms-windows?

    Another layer: it's a web app that depends on Perl / CGI / CGI::Application, which is obviously available on your web server, and someone wants you to port it to other web servers where these things might not be available (yet)?

    Yet another layer: the people who manage those other web servers might know nothing about (or are resistant to) using Perl?

    If it were a stand-alone command-line app (as opposed to a web app), you could get over the linux/windows and perl-challenged recipients issues by using a windows box yourself to create an executable (*.exe) file from the perl script and pass that around. But I gather it's not this sort of app.

    If the expected recipients are entrenched in and unwilling to accommodate Perl/CGI on their web servers, there's not much you can do about that -- they are basically saying "we don't want your app", and it's not your problem.

      If the expected recipients are entrenched in and unwilling to accommodate Perl/CGI on their web servers, there's not much you can do about that -- they are basically saying "we don't want your app", and it's not your problem.

      If you only knew half of it you would cry or laugh like a baby. I know I do. Being employeed by one of the most well known colleges in the USA; does have its pros and cons. Politics being a con. My satilite campus is the bastard child/black sheep. When the VP of IS mandates from on high you just try to do your job and wait for him to steam roll the road blocks.

      until then I will attempt to get a windows server box up and figure out how to authenticate off the active directory.

      thanks brian this is a step in the right direction.

Re: perl application installation
by Anonymous Monk on Feb 13, 2006 at 16:18 UTC
    Under Windows, you can create a self-install program using this free package : Nullsoft Installer ( For Unix, If you know for sure all machines already run a useable version of Perl, you can create a bundle.
      For Windows there is also the free Inno Setup (which I like because it's scriptable.) If this is a "mandate from on high" then get "on high" to fork out the cash for InstallShield.

      For Linux there is also Autopackage. I can't speak much about it though.

      Personally (on Windows) I use a combination of Makefiles and Inno Setup. After creating an installation script with Inno Setup, make release will bundle everything together and run the Inno Setup script packaging everything into a single installer executable.

        I have a not dissimilar situation, I have a client who is totally Windows & PHP but they do run Apache on Intranet servers in about 30 locations. So we have done a NSIS (Nullsoft Installer which is highly scriptable and well supported) installer that ultiamtely runs a Perl programme (created with ActiveState's PerlApp) that re-configures the appropriate parts of the Apache config (There are modules that will read and manipulate Apache configs), then we install the main Perl prog also using ActiveState's PerlApp, but this time it unpacks itself and leaves it's mess behind - configuring things in such a way that the normal Apache CGI calls will work, the using Win32::Service we restart the Apache and away we go.

        It's not really rocket science, but it does take a lot of time. And given that we have found the average Windows admin knows precious little about his machine we have found the totally automated way to be best. I set up a duplicate fo their system here to test it, and we haven't skipped a beat in the field - every one has installed correctly.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://529562]
Approved by graff
Front-paged by astaines
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2018-02-25 12:32 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (312 votes). Check out past polls.