Updating perl modules inside the base perl package

Robin Norwood rnorwood at redhat.com
Wed Sep 13 16:43:16 UTC 2006


"Ian Burrell" <ianburrell at gmail.com> writes:

> On 9/8/06, Nigel Metheringham <Nigel.Metheringham at dev.intechnology.co.uk> wrote:
>> Ian Burrell wrote:

[...]

> Those both have separate distributions on CPAN in addition to being
> included in perl.  Separate packages could be built from the newer
> releases.  Unfortunately, there is a problem in getting them used.  On
> RHEL 4 is that the include directories go (taking out multiple
> versions and binary directories):
>
> /usr/lib/perl5/5.8.5
> /usr/lib/perl5/site_perl/5.8.5
> /usr/lib/perl5/vendor_perl/5.8.5
>
> If you install the separate packages in vendor_perl (this requires
> special options while building), they won't be used.  If you install
> them in /usr/lib/perl5/5.8.5 (the default), the files will conflict
> with the perl RPM.  The FC5 perl fixes the problem by changing the
> order so that the vendor_perl directory comes first.
>
> /usr/lib/perl5/site_perl/5.8.8
> /usr/lib/perl5/vendor_perl/5.8.8
> /usr/lib/perl5/5.8.8
>
> My impression is that the RHEL 4 perl 5.8.5 is binary compatible with
> the FC5 5.8.8.  This is controlled by the "perl(:MODULE_COMPAT_5.8.3)"
> requirements.  And by the default INC including the
> 5.8.3/i386-linux-thread-multi and later direcrtories.

Using site_perl and/or vendor_perl is certainly the right way to fix
this for releases that have the @INC order right.  I'm not sure what to
recommend to the OP besides either rebuilding the perl package, or
possibly a dirty hack like:

o Have 'your' versions of the modules installed in a directory
  (/foo/bar)
o Put a 'use lib "/foo/bar"' at the top of all the scripts

Since use lib prepends to @INC, that 'should work'.

Anyone have a better, or at least 'less bad', idea?

-RN

-- 
Robin Norwood
Red Hat, Inc.

"The Sage does nothing, yet nothing remains undone."
-Lao Tzu, Te Tao Ching




More information about the Fedora-perl-devel-list mailing list