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