2 depend or not 2 depend
Leo Lapworth
ranguard at gmail.com
Thu Feb 4 18:21:59 GMT 2010
Look at shipwrite (on CPAN) also run your own CPAN mirror (see
CPAN::Mini) and don't forget version control of everything
Oh local::lib is also useful
On 4 Feb 2010, at 17:46, Paulo Edgar Castro
<pauloedgarcastro at gmail.com> wrote:
> Dear mongers,
>
> I come to you in the hope of enlightenment....
>
> At the place were I work we a have a perl software suite that
> depends on roughly 148 modules not counting of course on the
> dependencies that these 148 modules have.
> Ignoring the fact that we currently have a perl binary which has all
> the modules necessary to run the application, let's supposed we're
> changing processor architecture and we'd like the same version of
> perl to run and we would require exactly the same module versions
> that we currently have on the old system. Let's assume that there
> are not architectural problems installing the modules in this new
> architecture.
>
> Long story short as I think I'm making a bit of a mess with the
> question...
> We want to install all the 148 modules with the exact version number
> of what we currently have installed. Preferably we want to install
> everything exactly as we have.
>
> Our initial thought was to just run through the motions of the app
> Makefile which has defined these 148 modules with perl Makefile.PL --
> defaultdeps && make
> and wait for the modules to install.
> Then the penny droped and we realized that we were getting the
> latest versions of each module which was not what we wanted.
>
> Sure we could go the route of installing/updating all the modules
> and QAing the app in order to prove that it still works.
> But there are issues with some modules which don't play nicely nor
> pass almost none of the tests and might break everything when
> different versions of the modules they depend on are installed in
> the system.
>
> We also though that we could force a specific version of a module
> installation with for example "install M/MS/MSCHWERN/Test-
> Simple-0.62.tar.gz"
> But then CPAN would go on installing the latest Test-0.69 when Test-
> Simple-0.62 explicitly depends on Test-0.66 and thus not ready yet
> for 0.69.
>
> The problem is, there doesn't seem to be a way of defining explicit
> dependencies like I depend on module version 0.1 so go on and
> install me that module version 0.1 not higher or lower in case you
> have problems either die or get back to me with options.
>
> Possible solutions:
>
> a)
>
> * Get a listing of all the modules installed in the system
> * Try to mirror that list using our own bastard version of CPAN with
> cpansite ?
>
> b)
>
> * Get a listing of all the modules installed in the system
> * ..and installed them by hand
>
> We currently use our own compiled version of perl 5.8.8
> Below follows a snippet of our Makefile.
>
> It's very likely that I might be missing some obvious knowledge/
> tricks here.
> Would there be a cleverer way to accomplish this ?
>
> Tkx/Regards,
>
>
> PECastro
>
>
>
> Makefile snippet....
>
> requires(
> 'Cache::Memcached::Managed' => '0.20',
> 'Carp::Always' => '0.09',
> 'Carp::REPL' => '0.14',
> 'Catalyst::Action::RenderView' => '0.11',
> 'Catalyst::Authentication::Store::LDAP' => '0.1004',
> 'Catalyst::Component::InstancePerContext' => '0.001001',
> 'Catalyst::Component::InstancePerContext' => '0.001001',
> 'Catalyst::Engine::Stomp' => '0.06',
> 'Catalyst::Log::Log4perl' => '1.00',
> 'Catalyst::Model::DBIC::Schema' => '0.29',
> 'Catalyst::Model::File' => '0.08',
> 'Catalyst::Plugin::Authentication' => '0.10013',
> 'Catalyst::Plugin::Authorization::ACL' => '0.11',
> 'Catalyst::Plugin::Authorization::Roles' => '0.07',
> ....
> ....
> ....
> ...
>
> )
>
>
More information about the london.pm
mailing list