Updating perl modules inside the base perl package

Ian Burrell ianburrell at gmail.com
Fri Sep 8 18:48:57 UTC 2006


On 9/8/06, Nigel Metheringham <Nigel.Metheringham at dev.intechnology.co.uk> wrote:
> Ian Burrell wrote:
> > Do the modules have a separate life in CPAN?  There are a few like CGI
> > and CPAN that are included in the perl but also distributed
> > separately.  The perl RPM has obsoletes tp get rid of the old separate
> > packages.  One solution is to modify the perl spec to remove the
> > obsolete (or make them versioned).  There was a recent bug about doing
> > this for Fedora. Then you would build and install separate packages
> > for the newer version.
>
> An example of modules that I have problems with in RHEL/Centos (not
> Fedora as that has a much more recent version of perl) are:-
>
>     * Test::Simple
>     * Scalar::Util
>
> The last is particularly relevant as the one that ships with RHEL4 perl
> does not handle weaken, so some stuff just cannot work without it.
>
> Updating all of perl and keeping your own perl rpm maintained is a
> complete pain.  And if you do drastically upgrade perl (ie use the
> Fedora 5 rpm rebuilt for RHEL) then you will probably have to rebuild a
> pile of the other rpms to match too.
>
> Being able to deal with individual packages would be far far better.  Or
> being able to override stock modules with later versions without needing
> deep INC mangling magic would be good too.
>

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.

 - Ian




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