[Melbourne-pm] caching CPAN dist files

Mathew Robertson mathew.blair.robertson at gmail.com
Tue Apr 19 18:35:53 PDT 2011

Hi Toby,

I am not familiar with how this would do the dependency checking required ->
how would building a package containing exactly the installed files, differ
from simply creating a tarball?  ie: it appears this technique completely
ignores the OS versioning problems...


On 20 April 2011 11:27, Toby Corkindale <
toby.corkindale at strategicdata.com.au> wrote:

> I install a custom Perl into /usr/local/$NAME/perl, and then install the
> multitude of CPAN modules in there with it using CPANPLUS.
> I have a script that can do the above automatically, and can also update
> the CPAN modules.
> After everything is in there, I add/update the files to a Git repository,
> then build a Debian package out of the whole lot.
> Just a single, monolithic package that contains everything.
> Then that gets installed on development and production machines.
> If new modules are required, the process is re-run, and a new single
> package is built.. this gets tested in development alongside the next
> upcoming production release, then release to production alongside the next
> release.
> This seems to work fairly well; I can't claim that the idea is mine - it
> was inspired by a talk at OSDC a couple of years ago by Adam Kennedy.
> I have intentions to get this cleaned up enough to release as an
> open-source project, but it's not quite there yet.
> -Toby
> On 20/04/11 09:51, Malcolm Herbert wrote:
>> I'm in the process of putting together a project that I'm expecting to
>> use a fair number of CPAN modules directly rather than using the system
>> native packages of them, for portability.  I have a few development and
>> test instances and a few instances in production.  I'd like to use CPAN
>> to manage the modules installed on each, however I want to make sure
>> that they stay in sync with each other and avoid potential dependency
>> issues should my development and production environments drift too far
>> apart.  Ideally I'd like to use the CPAN tools to update the production
>> environment only from the set of modules I've collected and tested on my
>> dev/test hosts.
>> Is there a good method for doing this?  I've discovered Local::lib from
>> the Catalyst book which looks promising for installing modules into
>> non-system locations which means I can add and update modules without
>> being root on the host, but I can't see how to get CPAN to only ever
>> look in local directories for dist files rather than fetching from the
>> web.
>> Also, if down the track I discover a need for module xxx, the current
>> version of which requires a later yyy than I have (ignoring issues of
>> whether this is a good idea) how would I go about trying to locate the
>> latest version of xxx that would be satisfied with the version of yyy
>> that I already have rather than trying to update both?  How long do old
>> versions of modules stick around in CPAN?
>> I've been able to avoid precisely this issue with pkgsrc by
>> pre-emptively downloading all the binary packages as they are available
>> in one hit, which has meant I've been able to add new packages to older
>> installs of hosts without issues, at the cost of downloading around 10GB
>> of data ... do people do similar things with CPAN?  How big is CPAN if I
>> were to attempt this?  Are there snapshot versions of CPAN out there
>> which don't change (apart from minor bug fixes)?  How long do they last
>> in that state?
>> So many questions ... :)
>> Regards,
>> Malcolm
> --
> .signature
> _______________________________________________
> Melbourne-pm mailing list
> Melbourne-pm at pm.org
> http://mail.pm.org/mailman/listinfo/melbourne-pm
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/melbourne-pm/attachments/20110420/35f54074/attachment.html>

More information about the Melbourne-pm mailing list