I'm more interested in the foundations of a deployment system based on packages.
Some motivation would probably be helpful. Imagine hundreds of servers, in several classes, provisioned, say from Amazon Web Services. Perl is a perfectly good language to for many distributed applications. We want the ability to deploy a distributed "application" to these tiers. Using packages this is a possibility, provided we have enough of the basic mechanisms (Rollback is a major one, installing without interactivity another).
First off building from source is not the way to go. There have been a variety of systems like this, and they wind up being more trouble than they are worth. The canonical example being Gentoo linux, or Mac ports, which pull all the source and build everything. While this approach is useful, it just takes too much time. Rebuilding things from source every single time is a great way to sop up that extra processing time, but not a great use of human time. Building from source is a way to insure that we can move to new architectures, but it should not be the default way to upgrade a system. RPMs work just fine, are fast and convenient.
When one deploys software, there is always the chance of failure, so one wants to be able to roll back to the previous version. RPMs provide this ability, but CPAN does not.
I'm a little prejudiced in that anything that seems like a global build system is not the way to go. I'm not saying this can't be made to work, but these systems tend to rely on things like rebuilding everything from scratch, rather than on package dependency algorithms which determine what to upgrade (suffering from this on Mac ports at the moment). If you can't rebuild everything, you must instead try to find packages which satisfy some dependency constraints. This winds up working better when done properly.
Another issue is that CPAN is designed to be like a giant Borg rather than individual repos which hold portions of the packages. The problem with this is it requires one to do silly things like keep a MiniCPAN to do distributions. While it is possible to get things working, the devil is in the details...all the tools want there to be a CPAN + your local modules to work. Things don't work well when you violate this, but you can see all of the tutorials and tools start from some mirror and add a delta to that. Not a scalable approach in general.
Rollback is different than regenerate.
In reply to Re^4: Private Module Repository
by zerohero
in thread Private Module Repository
by zerohero
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |