Michael Peters writes:

> Krang keeps a local copy of all of the CPAN modules it uses in it's
> source repo.  Also, each module is installed locally to krang so that
> it can be installed without affecting an existing installation. ...

We've used software that does things like that; I think the OTRS
ticketing system is one of them.

> the benefits are pretty big: ... Never having to worry about this
> application screwing with some other application. ...

But there are also downsides.  If a bug or security problem is found
with one of those modules, it won't be addressed by us upgrading the
Cpan module in the standard location, because the app has its own copy.

We also got bitten by deploying such an app (without realizing that it
was done in this way) using mod_perl, on the same Apache server (but
different virtual host) as some of our other things.  The app's old
versions of some Cpan modules were loaded into Apache instead of the
up-to-date ones installed in the usual system directories, which managed
to break some of our code; discovering exactly what was wrong was
painful -- we didn't expect an app to pollute our Apache with older
versions of Cpan modules.

Bundling all dependencies with an app makes installation easier for end
users who don't even know what Perl is, but harder for those who are
comfortable with Cpan and the like and are used to things being done in
standard ways.

My preferred way of getting such an app would be as a deb package of
just the app, but with dependencies on any required modules (and with
debs of those modules if they aren't already available), but I realize
that not everybody is running an OS which uses debs so this isn't a
sufficient solution.

Smylers

Reply via email to