[Melbourne-pm] How to build a local module repository

Toby Corkindale tjc at wintrmute.net
Sun Jun 1 20:57:35 PDT 2008

On Mon, Jun 02, 2008 at 01:24:05PM +1000, Ian Macdonald wrote:
> Hi,
> I was wondering if people had good solutions for distributing internal code
> and known-to-work CPAN modules through a local repository. We have linux &
> WinXP boxes on site and up to now the CPAN modules we need (60+) have been
> installed on the WinXP boxes with a combination of CPAN and PPM, which has
> been painful due to dependencies, availability of up-to-date PPM modules,
> etc.
> Code distribution for our internal code has been done by shared drives for
> the WinXP boxes; our newer work has been on linux and we've just been
> installing the code separately on each machine, which will bite us
> eventually.
> We're currently trialling Strawberry Perl as an alternative to ASPerl, and
> we were looking to fix our code distribution at the same time by using
> CPAN::Site to create a local repository holding our local code and any CPAN
> modules we wished to freeze w.r.t. their versions; we've had several
> instances where upgrades to CPAN modules have caused regression failures or
> inconsistencies in our system. This way, all boxes could be installed with a
> single cpan bundle and any OS-specific issues can be handled in the relevant
> module's makefile.
> Does anybody have any better ideas, or can see problems with where we're
> going?

I suggest using the distributions own tools for package management. RPM on
RedHat, APT on Debian/Ubuntu, Portage on Gentoo, etc.
I'm really unfamiliar with Windows so I'm not sure their system uses, but they
must have something for enterprise management of windows servers, surely?

> PS on a related note; we've also thought about installing CPAN modules on
> new boxes by simply copying the perl/site directory from a working box.
> Assuming that the OS matches down to the patch level, is this a safe
> approach?

In fact, given that Perl installs architecture-specific things under differing
directories, so should even be able to share the directory between totally
different machines too. (Assuming you install into that directory from each
variant initially of course)


More information about the Melbourne-pm mailing list