Ship with required modules and install them locally.

By including the module distributions we can be sure we have working versions and installation can proceed much more quickly. Installing them into an application local directory means that we won't get unintended changes when the user installs a module at the system level. It also makes it easier to support uninstalls, and allows multiple versions of the application with different module requirements to run on the same machine.

Although this idea would work great when using a dedicated apache/mod_perl setup, if the users decides to run your app on a apache/mod_perl setup that is shared with other apps, then your module versions may interfere with what the other applications expect.

mod_perl will only allow one version of a module to be running at one time, and the first one that gets loaded wins. So if you have two apps that have different INC paths with different versions of the same module, the one that gets loaded will depend on which app is 'requested' first on the server (unless you are already preloading the modules in perl_startup.pl). This could lead to some difficult to trace problems that only occur on server restarts...

But I guess if the user is willing to spend the time to get the app working on a shared apache/mod_perl setup then you can probably expect them to install the modules you require in the main INC tree and not require the privately installed module tree. It's just a matter of giving some extra INSTALL docs.


In reply to Re: Installation System Design for a Large Apache/mod_perl Application by cees
in thread Installation System Design for a Large Apache/mod_perl Application by samtregar

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.