[Catalyst] Requiring a certain module version in Makefile.PL

Octavian Rasnita orasnita at gmail.com
Sun Feb 21 21:47:07 GMT 2010


From: "J. Shirley" <jshirley at gmail.com>
> On Sun, Feb 21, 2010 at 9:54 AM, Octavian Rasnita <orasnita at gmail.com> 
> wrote:
>> Hi,
>>
>> In Makefile.PL I have the following line:
>>
>> requires 'DBIx::Class::Schema::Loader' => '0.05003';
>>
>> When I do
>> perl Makefile.PL
>>
>> shouldn't that line require and install this version of
>> DBIx::Class::Schema::Loder?
>>
>> I have a 0.04... version, but after `perl Makefile.PL` the new version 
>> was
>> not installed and it happened the same with other modules.
>>
>> I use Perl 5.10.0 under Debian.
>>
>> Thanks.
>>
>
>
> What's the output of 'perl Makefile.PL'?  It certainly should, and
> I've never seen it not correctly listing deps.
>
> -J

After I do
perl Makefile.PL it ends without asking me if I want to install some 
required modules, exactly as when it is all right.

But I've just discovered:

root at ebroker:~# perl -MDBIx::Class::Schema::Loader -e 'print 
"$DBIx::Class::Schema::Loader::VERSION\n"'
0.04005
root at ebroker:~# su www-data
www-data at ebroker:~$ perl -MDBIx::Class::Schema::Loader -e 'print 
"$DBIx::Class::Schema::Loader::VERSION\n"'
0.05003
www-data at ebroker:~$

So the user www-data sees a newer version of this module because it has the 
following PERL5LIB:
/srv/perl5/lib/perl5:/srv/perl5/lib/perl5:/srv/perl5/lib/perl5/x86_64-linux-gnu-thread-multi
while the user root has no PERL5LIB environment variable defined.

I have installed most of the modules using local::lib, but I couldn't 
install some of them because they give an error telling that they can't 
create the directory
/home/t1
where it tries to install the modules, (t1 was an old user that doesn't 
exist anymore). This error is given by the module ExtUtils::Install but even 
though I searched in many places I couldn't find where it gets that "t1" 
from.

Octavian




More information about the Catalyst mailing list