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