Server Deployment Packaging

We tend to use Centos 5 on server systems.
In the past I have handled perl package deployments by using the native (or occasionally, when upstream maintenance has gone wonky, a minimally patched rebuild of the native) perl, with all the modules I require built as native rpm packages.
Maintaining this has been, frankly, a bugger.
Additionally the system perl is often less than performant, and somewhat elderly.
So I am trialling a new mechanism.
This uses perlbrew to build a perl into /opt/perl - currently using perl 5.10.1 (mainly because a pile of things won't build with 5.12.x due to TryCatch failing to build (and its a dependancy of many other packages I do need).
I then have a local Task:: module which pulls in all the DBI, Catalyst and other random CPAN goodness I could need, with CPAN configured to look at a local versioned mirror so that the complete build is repeatable.
So I end up with a monster package (actually only 27MB) of perl binary and modules, which all our applications will depend on.
This is, frankly, a kludge.
And it does have drawbacks (dependancy handling will be somewhat bypassed, it requires a complete rebuild to add/update a module). However its cleaner than the current approach in my opinion.
So I just need to start testing things with this configuration....

1 Comment

Have you tried on CPAN? It is excellent at generating rpms from Perl modules. You can build rpms against your /opt Perl install.

Leave a comment

About Nigel Metheringham

user-pic Ancient hacker